网络编程2/传输层

传输层的常见的协议有TCP和UDP

特点:

TCP:面向连接、面向字节流、可靠传输

UDP:面向数据报、无连接、不可靠

UDP协议格式:

16位源端口号、16位目的端口号、16位端口号长度、16位UDP检验和

UDP的应用

DHCP分配、DNS域名分析、TFTP简单文件传输协议

TCP面向连接

        三次握手:

        客户端发送SYN请求

        服务器回复SYN请求+ACK确认

        客户端发送ACK

确认序号=序号+数据长度 含意是:期望对方下一个发送的数据从确认序号的数目开始发送

纯ACK数据包不消耗序号

服务端和客户端各自维护一组序号

        四次挥手:
                        主动断开连接方         被动断开连接方               

FIN_WAIT_1          发送FIN

FIN_WAIT_2                                              发送ACK        CLOSE_WAIT

                                                                   发送FIN          LAST_ACK

TIME_WAIT           发送ACK                                               

     2MSL                                                                                CLOSE

   CLOSE

MSL:报文最大生存时间

2MSL=丢失的ACK的MSL+重传的FIN的MSL

主动方在2MSL中如果重新受到了FIN数据包,代表之前发送的ACK丢失,重新发送

TCP协议格式

4位首部长度:指的是TCP首部的大小

16位窗口大小:告诉对方可接受的数据报大小

tcp首部字节长度计算公式:首部长度*4

MSS:最大报文长度

为什么要协商最大报文长度:防止报文过大,丢失数据报

MTU:最大传输单元,是网卡传输数据帧的限制

MTU<=MSS + TCP头部 + ip头部

可靠传输

        保证可靠的机制:确认应答机制、超时重传

        RTO = RTT(上次)*i + RTT(上上次)*(1-i)

        提高传输效率:滑动窗口机制

        为什么要滑动窗口机制:主机要发送下一个数据包要等下一个ACK传到,十分影响效率,一次性发送多个数据包,提高效率

        考虑传输效率的三个方面:
                发送方的发送能力

                接受方的接受能力

                网络转发的能力

        滑动窗口:

                接受窗口:接受窗口最早发送分组数据包一个数据报确认应答,滑动窗口移动
                 

                发送窗口:在当前收到最大的确认应答后移动就可以滑动,意味着前面的数据包都被接受方接受到了

        拥塞控制:

        慢启动:拥塞窗口呈现指数增长

        拥塞避免:到达sstresh变为线性增长

        快速恢复:出现网络拥塞后,新的ssthresh设置为拥塞发生时拥塞窗口的一半

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值