传输层协议介绍(内涵三次握手,四次挥手详解)

TCP/IP协议族的传输层协议

TCP(Transmission Control Protocol)面向连接的传输控制协议

传输数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器以及连接管理等。

UDP(User Datagram Protocol)无连接的用户数据报协议

传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认

TCP

UDP

可靠性

可靠

不可靠

连接线

面向连接

无连接

报文

面向字节流

面向报文(保留报文的边界)

效率

传输效率低

传输效率高

双工性

全双工

一对一、一对多、多对一、多对多

流量控制

有(滑动窗口)

拥塞控制

有(慢开始、拥塞避免、快重传、快恢复)


一、TCP协议

1)TCP协议介绍

TCP是面向连接的、可靠的进程到进程通信的协议

TCP提供全双工服务,即数据可在同一时间双向传输

面向连接网络协议:是指通信双方之间在进行通信之前要先建立连接。比如打电话,双方通话前需要先建立连接。

TCP报文段

TCP 将若干个字节构成一个分组,叫报文段(Segment)

TCP 报文段封装在IP数据报

源端口号:发送方进程的端口号

目标端口号:接收端进程的端口号接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程

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

当TCP从进程接收数据字节时,把它们存储在发送缓存中,并对每一个字节进行编号。当数据到达目的地后,接收端会按照这个序号把数据重新排列保证数据的正确性。从而保证数据的安全性

确认号:对发送端确认信息

接收端响应消息时将用会它来告诉发送端这个序号之前的数据段都已经收到,如确认号是X,就是表示前X-1个数据段都已经收到。从而保证数据的可靠性

首部长度:用它可以确定首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节

窗口大小:说明本地可接收数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制机制就是依靠变化窗口的大小实现的。

比如下载速度从一开始的几KB 逐渐提升到几M 的过程。

控制位:

URG:紧急位。紧急指针有效位。

ACK:确认位。只有当 ACK=1 时,确认序列号字段才有效;当 ACK=0 时,确认号字段无效。

PSH:急迫位。标志位为 1 时,要求接收方尽快将数据段送达应用层。

RST:重置位。当 RST 值为 1 时,通知重新建立 TCP连接。

SYN:同步/连接位。同步序号位,TCP需要建立连接时将这个值设为 1。

FIN:断开位。当 TCP 完成数据传输需要断开连接时,提出断开连接的一方将这个值设为 1。

校验和:用来做差错控制。在发送TCP数据段时,由发送端计算校验和,当到达目的地时又进行一次校验和计算。若这两次的校验和一致,则说明数据基本是正确的否则将认为该数据已被破坏,接收端将丢弃该数据

紧急指针:和 URG配合使用,当 URG=1 时有效。

选项:在 TCP首部可以有多达 40 字节的可选信息。

2)TCP连接

①TCP建立连接(三次握手)

ps:ESTABLISHED 连接状态

1.客户端发送连接请求报文段,无应用层数据 SYN=1,seq=x(随机)

2.服务器分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据 SYN=1,ACK=1,seq=y(随机),Ack=x+1

3.客户端分配缓存和变量,并向服务器返回确认,可以携带数据 SYN=0,ACK=1,seq=x+1

②TCP断开连接(四次挥手)

ps:进入TIME_WAIT状态需要60s等待进入CLOSED状态

1.客户端连接释放报文段,停止发送数据,主动关闭TCP连接 FIN=1,seq=u

2.服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了(半关闭状态) ACK=1,seq=v,Ack=u+1

3.服务器发完数据,就发送连接释放报文段,主动关闭TCP连接 FIN=1,ACK=1,seq=w,Ack=u+1

4.客户端回送一个确认报文段,等到计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭

③TCP半关闭
④总结

三次握手:

1.发送方向接收方发送SYN请求

⒉接收方接收到此请求后会主动回复一个ACK,并且同时也发送一个SYN请求

3.发送方接收到接收方发来的SYN请求后,给出一个ACK确认

四次挥手:

1.发送方向接收方发送一个FIN请求

⒉接收方收到此请求后给出一个ACK确认(半关闭状态)

3.接收方发送一个FIN请求给发送方

4.发送方收到接收方的FIN请求后,回复一个ACK

3)常用的TCP端口号及其功能

端口

协议

说明

21

FTP

FTP服务器所开放的控制端口

23

TELNET

用于远程登录,可以远程控制管理目标计算机

80

HTTP

超文本传输协议

443

HTTPS

用SSL/TLS对数据进行加密和解密,Http进行传输

25

SMTP

SMTP服务器开口的端口,用于发送邮件

110

POP3

用于邮件的接收


二、UDP协议

1)UDP协议介绍

无连接、不可靠的传输协议

花费的开销小

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

UDP报文的首部格式

UDP长度:用来指出UDP的总长度,为首部加上数据

校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制

2)常用的UDP端口号及其功能

端口

协议

说明

69

TFTP

简单文件传输协议

111

RPC

远程过程调用

123

NTP

网络时间协议

161

SNMP

简单网络管理协议


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值