以太网端口的双工模式和速率
一、什么是半双工与全双工
1、双工模式分为如下两种:
a、半双工:只能收或者发,并存在最大传输距离的限制。
b、全双工:可以同时收和发,最大吞吐量可达到双倍速率,且消除了半双工的物理距离限制。
2、配置以太网接口速率和双工模式可在自协商或者非自协商两种模式下进行:
a、在自协商模式下,接口速率和双工模式是由链路两端的接口协商决定的。一旦协商通过,链路两端的设备就锁定在同样的双工模式和接口速率。自协商功能只有在链路两端设备均支持时才可以生效。如果对端设备不支持自协商功能,或者对端设备自协商模式和本端设备不一致,则接口可能会处于Down状态。
b、当对端设备不支持自协商功能,或者配置自协商功能后设备无法连通、物理连通后接口出现大量错包或丢包现象时,用户可配置本接口工作在非自协商模式下, 手动配置接口速率和双工模式,调整接口的速率和双工模式。
二、以太网的接口双工模式
以太网接口速率和双工模式支持情况
三、举例:如何解决网络中的拥塞问题
服务器群(Server1、Server2和Server3)分别与Switch的接口GE0/0/1、 GE0/0/2和GE0/0/3相连,Switch通过接口GE0/0/4上行接入Internet网络。
由于服务器网卡的特殊限制,接口GE0/0/1、GE0/0/2和GE0/0/3只能自协商为半双工模式,在该双工模式下,当业务数据流量较大时将会产生丢包现象;同时,接口 GE0/0/1、GE0/0/2和GE0/0/3速率自协商为最大速率1000Mbit/s,当服务器群同时以 1000Mbit/s速率对外发送数据时,就会造成出接口GE0/0/4拥塞。用户希望解决数据丢 包和拥塞问题。
1、配置非自协商模式下速率和双工模式组网图
2、配置思路如下:
配置接口工作在非自协商模式,避免服务器网卡影响设备接口的最终工作速率。
在非自协商模式下强制指定接口双工模式为全双工,避免发生数据丢包现象。
在非自协商模式下强制指定接口工作速率为100Mbit/s,避免发生数据拥塞现象。
3、配置步骤
step1、 创建端口组,并将接口GE0/0/1、GE0/0/2和GE0/0/3加入端口组
step2、 批量配置接口GE0/0/1、GE0/0/2和GE0/0/3工作在非自协商模式、双工模式为全双工、 工作速率为100Mbit/s
step3、 验证配置结果 在任意视图下执行命令display interface gigabitethernet 0/0/1,检查接口当前工作速率 及双工模式。
由上述回显字段看出接口工作在非自协商模式,工作速率为100Mbit/s,双工模式为全 双工。 同理,对于GE0/0/2和GE0/0/3也可以通过执行display interface gigabitethernet 0/0/2和display interface gigabitethernet 0/0/3命令 查看接口当前工作信息。
参考:网络中,什么是半双工与全双工?它们如何配置
推荐阅读
-
构建三层交换与VTP、STP及Eth-Trunk融合实验:基于双核架构实现高效、稳定、冗余网络" 实验目标: 利用双核心结构,整合三层交换技术、VTP (Virtual Trunking Protocol)、生成树协议 (STP) 和以太网通道 (Eth-Trunk),达成网络高速切换、高可用性、高可靠性和备份连接,适用于双核心拓扑场景。 实验步骤: 1. VLAN划分与IP地址规划: - VLAN10:192.168.10.0/24,默认网关192.168.10.1 - VLAN20:192.168.20.0/24,默认网关192.168.20.1 - VLAN30:192.168.30.0/24,默认网关192.168.30.1 - VLAN40:192.168.40.0/24,默认网关192.168.40.1 2. MSW1三层交换机配置: - 开启三层路由功能:`MSW1(config)#ip routing` - 配置Trunk接口:`MSW1(config-if-range)#switchport trunk encapsulation dot1q; switchport mode trunk` - 设置VTP域和模式:`MSW1(config)#vtp domain test; vtp mode server; vtp password cisco; vtp version 2` - 创建并命名VLAN:`MSW1(config)#vlan 10; MSW1(config-vlan)#name caiwu; ... (为其他VLAN重复操作)` - 分配VLAN IP地址:`MSW1(config-if)#int vlan 10; ip address 192.168.10.1 255.255.255.0; no shutdown; ... (为其他VLAN重复操作)` - 配置生成树优先级:`MSW1(config)#spanning-tree vlan 10,20 root primary; MSW1(config)#spanning-tree vlan 30,40 root secondary` - 链接Eth-Trunk通道:`MSW1(config-if-range)#channel-group 1 mode on; ... (为其他相关接口重复操作)` 3. MSW2三层交换机配置类似MSW1,只需更改VLAN名称和IP地址以及相关端口配置即可。 通过以上步骤,两台三层交换机之间可通过Eth-Trunk实现高速数据交互,并通过VTP统一管理VLAN资源,STP则确保了网络流量的负载均衡,从而构建了一个高效、稳定且具备冗余保护的网络环境。
-
理解通信方式的区别:单工、半双工与全双工详解" - 单工就像在打电话时只能听见对方却说不了话,信息只能由一方传递给另一方。 - 半双工则像马路限行,同一时间只能一辆车通过,发送和接收轮流进行,比如老式对讲机或早期集线器的工作模式。 - 全双工就像在对话中能边说边听,双方都能同时发送和接收数据,现代网卡大多支持全双工,且其使用的电缆比半双工多一根,能提供更快的数据传输速率。 总结来说,数据通信中有3种主要类型: 1. **单工** - 信息只能单向流动,如传呼机; 2. **半双工** - 可双向传输但一次只能一方讲话,如对讲机,需通过切换实现双向通信; 3. **全双工** - 实现真正的双向同时通信,无需切换,如电话,每端均有独立发送和接收功能。
-
以太网端口的双工模式和速率
-
go语言Socket编程-Socket编程 什么是Socket Socket,英文含义是插座、插孔,一般称之为套接字,用于描述IP地址和端口。可以实现不同程序间的数据通信。 Socket起源于Unix,而Unix基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用:Socket,该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 套接字的内核实现较为复杂,不宜在学习初期深入学习,了解到如下结构足矣。 套接字通讯原理示意 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。因此可以用Socket来描述网络连接的一对一关系。 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 网络应用程序设计模式 C/S模式 传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。 B/S模式 浏览器(Browser)/服务器(Server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。 优缺点 对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。且,一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用的协议相对灵活。可以在标准协议的基础上根据需求裁剪及定制。例如,腾讯所采用的通信协议,即为ftp协议的修改剪裁版。 因此,传统的网络应用程序及较大型的网络应用程序都首选C/S模式进行开发。如,知名的网络游戏魔兽世界。3D画面,数据量庞大,使用C/S模式可以提前在本地进行大量数据的缓存处理,从而提高观感。 C/S模式的缺点也较突出。由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提升,开发周期较长。另外,从用户角度出发,需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。这也是很多用户不愿使用C/S模式应用程序的重要原因。 B/S模式相比C/S模式而言,由于它没有独立的客户端,使用标准浏览器作为客户端,其工作开发量较小。只需开发服务器端即可。另外由于其采用浏览器显示数据,因此移植性非常好,不受平台限制。如早期的偷菜游戏,在各个平台上都可以完美运行。 B/S模式的缺点也较明显。由于使用第三方浏览器,因此网络应用支持受限。另外,没有客户端放到对方主机上,缓存数据不尽如人意,从而传输数据量受到限制。应用的观感大打折扣。第三,必须与浏览器一样,采用标准http协议进行通信,协议选择不灵活。 因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。 简单的C/S模型通信 Server端:Listen函数 func Listen(network, address string) (Listener, error) network:选用的协议:TCP、UDP, 如:“tcp”或 “udp” address:IP地址+端口号, 如:“127.0.0.1:8000”或 “:8000” Listener 接口: type Listener interface { Accept (Conn, error) Close error Addr Addr } Conn 接口: type Conn interface { Read(b byte) (n int, err error) Write(b byte) (n int, err error) Close error LocalAddr Addr RemoteAddr Addr SetDeadline(t time.Time) error SetReadDeadline(t time.Time) error SetWriteDeadline(t time.Time) error } 参看 [<u>https://studygolang.com/pkgdoc</u>](https://studygolang.com/pkgdoc) 中文帮助文档中的demo: 示例代码:TCP服务器.go package main import ( "net" "fmt" ) func main { // 创建监听 listener, err:= net.Listen("tcp", ":8000") if err != nil { fmt.Println("listen err:", err) return } defer listener.Close // 主协程结束时,关闭listener fmt.Println("服务器等待客户端建立连接...") // 等待客户端连接请求 conn, err := listener.Accept if err != nil { fmt.Println("accept err:", err) return } defer conn.Close // 使用结束,断开与客户端链接 fmt.Println("客户端与服务器连接建立成功...") // 接收客户端数据 buf := make(byte, 1024) // 创建1024大小的缓冲区,用于read n, err := conn.Read(buf) if err != nil { fmt.Println("read err:", err) return } fmt.Println("服务器读到:", string(buf[:n])) // 读多少,打印多少。 }
-
光纤接口、光纤以太网端口和以太网端口之间的区别。
-
腾讯视频直播 02-推流-美颜滤镜 同样,腾讯云提供了 setBeautyFilter 方法来设置美颜风格、磨皮程度、美白程度和泛红程度 //style 磨皮风格:0:平滑 1:自然 2:朦胧 //美容级别:0-9。值为 0 时关闭美颜效果。默认值:0,关闭美颜效果。 //美白级别:取值 0-9。值为 0 时,将关闭美白效果。默认值:0,关闭美白效果。 //ruddyLevel:取值范围为 0-9。值为 0 时关闭美白效果。默认值:0,关闭美白效果。 public boolean setBeautyFilter(int style, int beautyLevel, int whiteningLevel, int ruddyLevel);; public boolean setBeautyFilter(int style, int beautyLevel, int whiteningLevel, int ruddyLevel) 滤镜 setFilter 方法可以设置滤镜效果,滤镜本身是一个直方图文件。setSpecialRatio 方法可以设置滤镜的程度,从 0 到 1,越大滤镜效果越明显,默认值为 0.5。 Bitmap bitmap = BitmapUtils.decodeResource(getResources, R.drawable.langman); if (mLivePusher) if (mLivePusher ! = null) { mLivePusher.setFilter(bmp); } 控制摄像头 腾讯云 sdk 默认为前置摄像头(可以通过修改 TXLivePushConfig 的配置函数 setFrontCamera 来修改默认值),调用一次 switchCamera 就切换一次,注意切换摄像头前要确保 TXLivePushConfig 和 TXLivePusher 对象已经初始化。 mLivePushConfig.setFrontCamera(true); // 默认前置摄像头。 mLivePusher.switchCamera; //切换摄像头。 ⑦ 设置徽标水印 腾讯视频云目前支持两种设置水印的方式:一种是在流媒体 SDK 中设置水印,原理是在 SDK 中对视频进行编码前在画面中设置水印。另一种方式是在云端设置水印,即由云端解析视频并添加水印标识。 建议使用 SDK 添加水印,因为在云端添加水印会有问题。下面是添加水印的 SDK 介绍: //设置视频水印 mLivePushConfig.setWatermark(BitmapFactory.decodeResource(getResources,R.drawable.watermark), 10, 10); // 最后两个参数是视频的水印。 //最后两个参数是水印位置的 X 轴和 Y 轴坐标。 mLivePusher.setConfig(mLivePushConfig); 如果需要对水印图像的位置进行模型适配,则需要调用水印规范化接口。 /设置视频水印 mLivePushConfig.setWatermark(mBitmap, 0.02f, 0.05f, 0.2f); //参数为水印图像。 //参数包括水印图像的位图、水印位置的 X 轴坐标、水印位置的 Y 轴坐标和水印宽度。后三个参数的范围是 [0,1]。 // 最后两个参数是水印位置的 X 轴坐标和 Y 轴坐标。 mLivePusher.setConfig(mLivePushConfig); TXLivePushConfig 中的 setHardwareAcceleration 方法可以启用或禁用硬件编码。 if (mHWVideoEncode){ if (mLivePushConfig ! = null) { if (Build.VERSION.SDK_INT < 18){ Toast.makeText(getApplicationContext, "Hardware acceleration failed, current phone API level is too low (min 18)"、 Toast.LENGTH_SHORT).show; mHWVideoEncode = false; } } } } mLivePushConfig.setHardwareAcceleration(mHWVideoEncode ? TXLiveConstants.ENCODE_VIDEO_HARDWARE : TXLiveConstants.ENCODE_VIDEO_SOFTWARE); mLivePusher.setConfig(mLivePushConfig); // 如果您不确定何时启用硬件加速,建议将其设置为 ENCODE_VIDEO_AUTO。 // 默认情况下启用软件编码,但如果手机的 CPU 使用率超过 80% 或帧速率为 10,SDK 将自动切换到硬件编码。 ⑨ 后台推流 在常规模式下,一旦应用程序进入后台,摄像头捕捉数据的能力就会被 Android 禁用,这意味着 SDK 无法继续捕捉和编码音频和视频数据。如果我们什么都不做,故事就会按照下面的脚本发展: 阶段 1(背景剪切后 10 秒 ->)- CDN 无法将视频流传输给观众,因为没有数据,观众看到的是主帧。 阶段 2(10 秒-> 70 秒)--观众一方的播放器因无法接收到直播流而退出,房间里空无一人。 第 3 阶段(70 秒后)--服务器直接断开了推送流媒体的 RTMP 链接,主播需要重新打开直播才能继续。 主播可能只是短暂地接了一个紧急电话,但各云提供商的安全措施会迫使主播的直播提前结束。 1) 设置 setPauseFlag 在开始推流之前,使用 TXLivePushConfig 的 setPauseImg 接口设置一个等待图像,其含义建议为 "主播将暂时离开,稍后再回来"。