秋加数码网

为什么网络连接的发送字节明显小于接收字节?(tcp send 错误)

  1. 为什么网络连接的发送字节明显小于接收字节?
  2. tcp协议提供的是无连接不可靠服务?

为什么网络连接的发送字节明显小于接收字节?

RTO 超时重传时间 retransmission timeout RTT 往返时间 round trip time TTL: 存活时间。每经过一个路由器,会减1。防止在网络中无限循环。 发送窗口大小:发送缓存大小,接受缓存大小,丢包退让,慢启动4个因素决定 ARQ: automatic repeat request 自动重传请求 UNA: 旧的未确认的编号。表示此编号前所有的包已收到 ACK: 该编号包已收到 带宽:从一端到另一端网络的传输速度 发送速度:机器中进程调用send, 加上网卡转发的速度 一开始慢启动算法:拥塞窗口(cwnd)的初始值为1,2,4,8,16...每收到一个确认就指数增长。当拥塞窗口(cwnd)的大小等于慢启动门限值(ssthresh),执行拥塞避免算法,线性增长,每经过一个RTT则增加一个MSS的大小。当出现RTO时,ssthresh减为当前拥塞窗口的一半,拥塞窗口(cwnd)初始置为1,执行慢启动算法。循环重复。 MTU: 数据链路层的最大负载上限。最大传输单元。用于IP包分片。 MSS: TCP传输层的最大负载上限。最大报文段长度 网络字节序/主机字节序 计算机内部是小端字节序,网络传输大端字节序 可用带宽 = min(本地发送窗口字节尺寸, 远端可用接收窗口字节尺寸) x (1 - 丢包率) / RTT 连接的udp: 调用connect的udp, 就是远端地址不用每次填充。 无连接的udp: 没有调用connect的udp MSG_PEEK: 用于recv。预读接受缓冲区中的数据,而不会删除接受缓冲区中的数据。 TCP建立连接:交换初始序列号 TCP释放连接发送FIN,表示不再发送数据包,但可以接收。 处于TCP_FIN_WAIT_1和TCP_FIN_WAIT_2,都可以接收数据包,从1进2,因为收到了之前FIN的确认包。当收到对方的FIN包时,发送此包的确认包,就进入TCP_TIME_WAIT状态。 MSL: maximum segment lifetime 发送RST包表示因为异常要关闭连接。接收端收到RST包不用发ACK包。 网络抖动: 延迟和平均延迟的差值。 解决方案: 缓冲 listen的backlog决定全连接队列的大小 以太网适配器 = 网卡

因为你是从互联网获取信息的,你看的网页越多,下载的软件越多接受的字节当然多了,而发送的字节不过是向网络,诸如网站,发送一个请求。发送一个请求才需要几个字节呀,而返回的信息(就是打开这个网站)却是一大堆。呵呵,能力有限,我知道的就这些了,希望对你有帮助

为什么网络连接的发送字节明显小于接收字节?(tcp send 错误)-图1

tcp协议提供的是无连接不可靠服务?

应该是IP协议提供的是无连接不可靠服务。

IP协议是TCP/IP协议的动力,它为上层协议提供无状态、无连接、不可靠的服务

无状态:IP通讯双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都相互独立、没有上下文关系,虽然IP数据报的头部提供了一个标识字段,用来标识唯一的IP数据报,但是用来处理IP分片和重组的,并不指示接收顺序。

为什么网络连接的发送字节明显小于接收字节?(tcp send 错误)-图2

无连接:IP通讯的双方都不长久维持双方的任何信息,在上层协议每次发送数据的时候都必须要指定对方IP地址

不可靠:IP协议不能保证IP数据报准确的到达接收端,有很多情况可能导致发送数百,比如中转路由器发现IP数据报存活时间过长,就会丢弃并返回ICMP错误信息给发送端,所以IP服务的上层协议需要自己实现数据确认、超时重传等机制以达到可靠传输的目的

到此,以上就是小编对于tcp send 错误码的问题就介绍到这了,希望介绍的2点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

为什么网络连接的发送字节明显小于接收字节?(tcp send 错误)-图3
分享:
扫描分享到社交APP
上一篇
下一篇