go语言tcp协议push指令怎么用PUSH指令主要用于编写子程序和中断服务程序go语言基于tcp协议书,可以临时保存程序状态字PSW和累加器ACCgo语言基于tcp协议书的内容或其它寄存器和存储器单元的内容 。
在子程序和中断服务程序结束返回主程序前go语言基于tcp协议书,要用POP弹栈指令go语言基于tcp协议书,从堆栈中取出被保护的数据 , 恢复程序状态字PSW和累加器ACC的内容或其它寄存器和存储器单元的内容 。
呵呵满意就选满意回答啊
Go 语言自我提升 (三次握手 - 四次挥手 - TCP状态图 - udp - 网络文件传输)三次握手go语言基于tcp协议书:
1. 主动发起连接请求端(客户端)go语言基于tcp协议书,发送 SYN 标志位,携带数据包、包号
2. 被动接收连接请求端(服务器) , 接收 SYN,回复 ACK,携带应答序列号 。同时,发送SYN标志位,携带数据包、包号
3. 主动发起连接请求端(客户端),接收SYN 标志位,回复 ACK 。
被动端(服务器)接收 ACK —— 标志着 三次握手建立完成( Accept()/Dial() 返回 )
四次挥手:
1. 主动请求断开连接端(客户端), 发送 FIN标志,携带数据包
2. 被动接受断开连接端(服务器),发送 ACK标志,携带应答序列号 。—— 半关闭完成 。
3. 被动接受断开连接端(服务器),发送 FIN标志,携带数据包
4. 主动请求断开连接端(客户端), 发送 最后一个 ACK标志,携带应答序列号 。—— 发送完成,客户端不会直接退出,等 2MSL时长 。
等 2MSL待目的:确保服务器 收到最后一个ACK
滑动窗口:
通知对端本地存储数据的 缓冲区容量 。—— write 函数在对端 缓冲区满时,有可能阻塞 。
TCP状态转换:
1. 主动发起连接请求端:
【go语言基于tcp协议书 golang tcp通信】CLOSED —— 发送SYN —— SYN_SENT(go语言基于tcp协议书了解) —— 接收ACK、SYN,回发 ACK —— ESTABLISHED (数据通信)
2. 主动关闭连接请求端:
ESTABLISHED —— 发送FIN —— FIN_WAIT_1 —— 接收ACK —— FIN_WAIT_2 (半关闭、主动端)
—— 接收FIN、回复ACK —— TIME_WAIT (主动端) —— 等 2MSL 时长 —— CLOSED
3. 被动建立连接请求端:
CLOSED —— LISTEN —— 接收SYN、发送ACK、SYN —— SYN_RCVD —— 接收 ACK —— ESTABLISHED (数据通信)
4. 被动断开连接请求端:
ESTABLISHED —— 接收 FIN、发送 ACK —— CLOSE_WAIT —— 发送 FIN —— LAST_ACK —— 接收ACK —— CLOSED
windows下查看TCP状态转换:
netstat -an | findstr端口号
Linux下查看TCP状态转换:
netstat -an | grep端口号
TCP和UDP对比:
TCP: 面向连接的可靠的数据包传递 。针对不稳定的 网络层,完全弥补 。ACK
UDP:无连接不可靠的报文传输 。针对不稳定的 网络层,完全不弥补 。还原网络真实状态 。
优点缺点
TCP:可靠、顺序、稳定系统资源消耗大,程序实现繁复、速度慢
UDP:系统资源消耗?。?程序实现简单、速度快不可靠、无序、不稳定
使用场景:
TCP:大文件、可靠数据传输 。对数据的 稳定性、准确性、一致性要求较高的场合 。
UDP:应用于对数据时效性要求较高的场合 。网络直播、电话会议、视频直播、网络游戏 。
UDP-CS-Server实现流程:
1.创建 udp地址结构 ResolveUDPAddr(“协议”,“IP:port”) —— udpAddr 本质 struct{IP、port}
2.创建用于 数据通信的 socket ListenUDP(“协议”, udpAddr ) —— udpConn (socket)
3.从客户端读取数据,获取对端的地址 udpConn.ReadFromUDP() —— 返回:n,clientAddr,err
推荐阅读
- 快手直播九宫格视频教程,快手怎么发九宫格
- 电脑什么样的显示器好,电脑什么样的显示器好一点
- 打印机电脑休眠怎么打印,打印机电脑休眠怎么打印出来
- 798直播运营,798运营模式
- php返回添加数据总数 php返回值
- 半模组电源怎么插显卡上,半模组电源怎么插显卡上的线
- redis运行一段时间后停止,redis运行一段时间无法连接
- mysql数据导出数据库表,mysql导出整个数据库数据
- vb.net角度 vbnet ui