传输层协议介绍

192 阅读4分钟

TCP协议介绍

TCP (Transmission Control Protocol )传输控制协议

TCP: 面向连接 可靠的  接不到可以重新传  速度慢

TCP特性:

  • 工作在传输层
  • 面向连接协议
  • 全双工协议
  • 半关闭
  • 检查错误
  • 将数据段打包成段,排序
  • 确认机制
  • 数据恢复,重传
  • 流量控制,滑动窗口

TCP报文格式

image.png

源端口、目标端口: 计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。

序列号: 表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。

确认号:(ack)表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。

数据偏移/首部长度: 表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。

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

URG(紧急位):表示本报文段中发送的数据是否包含紧急数据。(是否有紧急数据)
SYN(同步位):在建立连接时使用,用来同步序号。(请求建立连接)
ACK(确认位):表示是否前面确认号字段是否有效。(已经建立连接)
PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。(紧急的数据立刻读出出来)
RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。 (发生严重错误,重新连接)
FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。(断开连接)

校验和: 提供额外的可靠性紧急指针:标记紧急数据在数据字段中的位置

选项部分: 其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节

端口号的作用: 确定进程(两个进程通信需要通过端口号确定)

三类端口:

1规定好的知名的端口号80 443 人为规定
2系统随机分配
3.人类自由使用

 三次握手

image.png

  • 第一次:pc1发送请求建立连接的报文(SYN)给pc2,报文包括pc1随机产生序号(seq)和建立连接的请求(SYN)
  • 第二次:pc2接收到后会向pc1发送请求建立连接和已经建立连接的报文(SYN+ACK)给pc1,报文包括pc2随机产生的序号(seq)、指定pc1下次发送消息的序号(Ack)、建立连接的请求(SYN)和已经建立连接(ACK)
  • 第三次:pc1接收到后发送已经建立连接的报文(ACK)给pc2,报文包括pc2指定的序号(seq)、指定pc1下次发送消息的序号(Ack)、已经建立连接(ACK) 

四次挥手

image.png

  • 第一次:pc1发送断开连接(FIN)和已经建立连接(ACK)的报文给pc2,报文包括断开连接(FIN)和已经建立连接(ACK)
  • 第二次:pc2发送已经建立连接(ACK)报文给PC1,属于半关闭连接,报文包括已经建立连接(ACK)
  • 第三次:pc2发送断开连接(FIN)的报文给pc1,报文包括断开连接(FIN)
  • 第四次:pc1向pc2发送确定报文

 UDP协议介绍

UDP (User Datagram Protocol )用户数据报协议

UDP: 不可靠 接不到不会重新传输 速度快

UDP特性:

  • 工作在传输层
  • 提供不可靠的网络访问
  • 非面向连接协议
  • 有限的错误检查
  • 传输性能高
  • 无数据恢复特性 

常见协议及其端口

端口协议说明
21FTPFTP服务器所开放的控制端
23TELNET用于远程登录,可以远程控制管理目标计算机
25SMTPSMTP服务器开放的端口,用于发送邮件
80HTTP超文本传输协议
110POP3用于邮件的接收
69TFTP简单文件传输协议
111RPC远程过程调用
123NTP网络时间协议