传输层协议&三次握手四次挥手

传输层协议

TCP协议     UPD协议  

协议的定义:计算机中比较重要的角色,规定数据通信和交互的规则约定。

协议的作用:

  1. 通信规范:数据格式,传输方式,消息结构(报文)、编码规则等。确保通信的可靠性,一致性,互操作性。
  2. 数据交换:数据在网络的中交换方式,数据包的组织方式,传输顺序,错误检测,纠正机制,保证数据传输的正确性和完整性。
  3. 安全性:协议可以规定数据的加密和身份认证机制,保障通信的安全,可以防止数据被未经授权的人访问,篡改,泄露。
  4. 设备互联:不同设备和不同系统之间能够互相连接和通信,不同厂商之间的不同设备实现互操作性。
  5. 网络管理:定义网络管理和监控的规范。通过指定的协议,管理员可以追踪个管理网络中的设备、配置、故障,确保网络的正常运行。

TCP协议:传输控制协议

       面对连接可靠的进程,到进程的通信协议。TCP提供的是全双工服务。每个TCP都有发送缓存和接受缓存,用来临时存储数据的。前提是通信双方必须建立连接,连接必须要有规范,有步骤。

UDP协议:用户数据报协议

       是无需连接,不保证可靠可行的传输协议。发送端不关心发送的数据是否到达接收方,是否有误;接收方也不回应 (可靠性有其他的上次协议保证)。其特点是传输速率快,效率更高 (也称之为:流媒体协议)。

TCP报文段

TCP将若干个字节构成一个分组,叫做报文段(Segment)
TCP报文段封装在IP数据报中

序号:发送端为每个字节进行编号,便于接收端正确重组

确认号:(ack)用于确认发送端的信息。表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方,我希望你下次发送的数据的第一个字节数据的编号为此确认号:传输是否有问题?

窗口大小:用于说明本地可接受数据段的数目,窗口大小是可变的

首部长度:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据便宜也就是TCP首部最大60字节。

控制位

  1. URG::紧急位,紧急指针有效位
  2. ACK: 确认位,只有当ACK=1,确认的序列号字段才有效I;ACK=0,确认号字段无效
  3. Ack:表示接收方期望收到发送方下一个报文段的第一个字节数据编号,确认传输是否有问题
  4. SEQ:tcp报文的序号
  5. SYN::同步位,连接位,同步序号位,tcp需要建立连接时,SYN=1建立连接
  6. FIN:断开位,tcp完成数据传输之后,需要断开连接,提出断开连接的一方,要把FIN,设为1
  7. PSH::急迫位,设为1时,要求接收方尽快的把数据放送应用层
  8. RST:重置位,RST=1时,要求重新建立tcp连接
  9. WIN:接受缓存区的空闲空间

三次握手&四次挥手


三次握手

当PC1想与PC2建立起链接,将连接信息写入报文


第一步:PC1会发送一个建立连接的请求报文(SYN),这个报文里有
报文的序号(Seq=x)  同步位(SYN=1)
请求建立连接......


第二步:当PC2收到消息以后,要回复一个报文,此报文里有
报文的序号(Seq=y)    Ack确认号(我希望你下一次发送x+1序号的报文给你)
控制位 SYN=1   却认为 ACK=1 
请求建立连接, PC2 同意建立连接


第三步:收到PC2同意建立连接的报文后
会发送一个x+1报文
会告诉对方 我希望你下次发送y+1的序号给我
最后将ACK=1封装进去
 

四次挥手


第1次:客户端发送一个FIN(断开位),通知服务器端 客户端要关闭连接了,客户端进入FIN_WAIT_1状态;

第2次:服务端收到FIN后,发送一个ACK=1(确认位)给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态(半关闭状态);

服务端将剩下没有发送给客户端的数据传送给客户端;

第3次:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态;

第4次:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务端,确认序号为收到序号+1(下图:w+1),服务端进入CLOSED状态,客户端等待2MSL,若没有回复也进入CLOSED状态。

PS:FIN标志位数置1,表示断开TCP连接。

TCP:基于连接控制,数据传输(加密),传输速度慢;不论是否建立还是断开连接都有一定的过程,所以数据通信安全度高。
TCP半关闭:一方已经停止发送数据,另一方还需要继续发送数据;一方先发FIN=1表示不再发数据,但接受不受影响。另一方回应ACK=1,确认不发送数据,但接受方还要继续传。接收方发送完数据则进入“挥手阶段”。

常用TCP端口号协议功能

http  80  tcp   超文本传输协议
https   443  tcp   数据加密、保护保存在客户端系统上的数据、验证、数据验证、可靠性
nginx   80   tcp
mysql   80   tcp
ftp   80   tcp     文件传输协议
ssh   22   tcp    远程访问控制协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G·shining

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值