传输层协议

TCP和UDP协议:

TCP:传输控制协议,可靠的进程到进程通信的协议

UDP:用户数据报协议

TCP介绍:

TCP/IP分层:定义了四层,和 OSI参考模型的分层有对应关系

TCP和IP异同点:

相同点:

两者都是以协议栈的概念为基础 协议栈中的协议彼此相互独立 下层对上层提供服务

不同点:

OSI是先有模型;TCP/IP是先有协议,后有模型 OSI是国际标准,适用于各种协议栈;

TCP/IP实际标准, 只适用于TCP/IP网络 层次数量不同 

面向连接网络协议:

是指通信双方之间在进行通信之前 要先建立连接。比如打电话,双方通话前需要先建立连 接。等数据发送结束后,双方再断开连接。

无连接网络协议:

是指通信双方不需要事先建立一条通 信线路,而是把每个带有目的地址的包送到网络线路 上,由系统自主选定路线进行传输。比如QQ发送信息。

UDP特性:

1.工作在传输层

2.提供不可靠的网络访问

3.非面向连接协议

4.有限的错误检查

5.传输性能高

6.无数据恢复特性

TCP特性:

1.工作在传输层

2.面向连接协议

3.全双工协议

4.半关闭

5.错误检查

6.将数据打包成段,排序

7.确认机制

8.数据恢复,重传

9.流量控制,滑动窗口

TCP要先建立连接,系统中每打开一个进程,分配一个pid(系统中的编号,方便管理)其次分配一个端口号

端口号分为三类:

规定好的 :例如80   443等

系统随机分配 :客户端访问服务端时系统自动随机分配一个端口号给你

人类自由使用

TCP的面向连接在传数据前要先把数据传输通道打通

控制位:决定A和B目前处于什么状态(11种状态6位控制位)

ACK:确认位:确认前面字段号是否有效

SYN:同步位:建立连接时使用,用来同步序号

FIN :断开位:表示通知对方本端要关闭连接了, 标记数据是否发送完毕

          通知对方我要关闭连接,标记数据是否发送完毕。如果FIN=1,告诉对方我已经发送完毕可以断开连接了

URG:紧急位:是否含有紧急数据

PSH:急切位:提示接收端应用程序应该立即从 TCP接收缓冲区中读走数据,为接收后续数据腾出空 间。

RST:重置位:释放连接,重新连接

TCP报文段:

TCP三次握手:

        tcp是面向连接的,就是说每次发送数据之前都要和对方建立一条可靠的连接,这个建立连接的过程分为3个步 骤,就叫做三次握手

第一步 :pc1会发送一个 建立连接的请求报文 :

第二步: 当pc2 收到消息以后 回复一个报文

第三步:收到 pc2 同意建立连接的报文后

            1.会发送一个x+1报文

            2.会告诉对方 我希望你下次 发送y+1的序号报文给我

            3.最后 将ACK=1 封装进去

 当客户端向服务器发送请求连接的报文时:

Seq序列号=x(x为随机) SYN=1(表示发送连接请求)

服务器端收到客户端发来的请求报文后,同意建立连 接,则向客户端发送确认报文:

Seq序列号=y(这时服务器也会产生一个序列号y,和客 户端的序号不相关)

Ack确认号=x+1(Seq序列号x+1,表示确认收到了客户 端的请求)

ACK=1(表示这是条确认请求)

SYN=1(同时也发送一个建立连接的请求) 客户端进程收到服务端进程的确认后,还要向服务端给 出确认,然后连接成功建立:

Seq序列号=x+1(这时客户端的序号为1)

Ack确认号=y+1(表示确认收到了服务器的连接请求)

ACK=1(表示这是确认报文)

有限状态机

1. CLOSED 没有任何连接状态

2. LISTEN 侦听状态,等待来自远方TCP端口的连接请求

3. SYN-SENT 在发送连接请求后,等待对方确认

4. SYN-RECEIVED 在收到和发送一个连接请求后,等待 对方确认

5. ESTABLISHED 代表传输连接建立,双方进入数据传 送状态

6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等 待对方确认

7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接 确认,等待对方发送关闭传输连接请求

8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消 失

9. CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请 求,并已确认

10. LAST-ACK 被动关闭,等待最后一个关闭传输连接确 认,并等待所有分组消失

11. CLOSING 双方同时尝试关闭传输连接,等待对方确 认

客户端先发送一个FIN给服务端,自己进入FIN_WAIT_1 状态,这时等待接收服务端报文,该报文会有三种可 能:

只有服务端的ACK

只有服务端的FIN

基于服务端的ACK,又有FIN

TCP超时重传:

异常网络状况下(开始出现超时或丢包),TCP控制数 据传输以保证其承诺的可靠服务 TCP服务必须能够重传超时时间内未收到确认的TCP报文 段。为此,TCP模块为每个TCP报文段都维护一 个重传定时器,该定时器在TCP报文段第一次被发送时 启动。如果超时时间内未收到接收方的应答, TCP模块将重传TCP报文段并重置定时器。至于下次重传 的超时时间如何选择,以及最多执行多少次重

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值