【传输层】协议之TCP、UDP、Telnet协议

5 阅读2分钟

传输层协议,也就是四层协议。

一、TCP协议

1、tcp和udp最主要的区别

  • tcp:面向连接,在传递数据之前,会先测试,看通不通,如果通才会传输真实数据。慢但是稳定
  • udp:无连接,连接前不测试主机的联通性,不看通不通,直接传递真实数据。快但是不靠谱。

image.png

2、TCP协议的特性

image.png

3、tcp报文段

(1)端口号

  1. 服务端一般是固定的,客户端随机产生;
  2. 前1024端口号基本已经被知名程序使用;
  3. 端口号的范围:2^16=65536,也就是从0-65535。
  4. 一个端口号只能被一个应用程序使用。(tcp80可以和udp80同时存在。)
  5. 协议的最终体现形式是某个程序。nginx 、apache

(2)确认号

小写的ack, 就是确定对方收到了我的包,并且约定我下一个包的序号+1

(3)控制位

控制位:描述了目前两台电脑处于什么阶段(请求连接、建立连接、半断开、断开连接)

  1. URG(紧急位):紧急数据,只有当URG=1时,才有效。
  2. PSH(急切位):表示是否要立即执行
  3. RST(重置位):如果出现了大错误,要重新传。(以上3个都表示比较紧急。)
  4. SYN(同步位):请求建立连接 SYN=1,请求建立连接。 SYN=1 ACK=1,同意建立连接。
  5. FIN(断开位):断开连接 FIN=1 ACK=1,意思是同意断开连接
  6. ACK(确认位):大写的ACK,确认同意连接/断开连接

(4)窗口大小

协商双方之间的数据包内存多大。

(5)校验和

确认数据包是否完整。

(6)选项部分

选项部分是可有可无的。

4、三次握手

  1. PC1向PC2发送SYN报文:seq=x SYN=1
  2. PC2向PC1发送SYN和ACK报文:seq=y ack=x+1 SYN=1 ACK=1
  3. PC1向PC2发送ACK报文:seq=x+1 ack=y+1 ACK=1 image.png

5、四次挥手

PC1向PC2,发送FIN和ACK报文:FIN=1 ACK=1 PC2向PC1,发送ACK报文:ACK=1 PC2向PC1,发送FIN和ACK报文:FIN=1 ACK=1 PC1向PC2,发送ACK报文:ACK=1

image.png

二、UDP协议

常见的udp端口号及其功能

端口协议说明
69TFTP简单文件传输协议
111RPC远程过程调用
123NTP网络时间协议

三、Telnet协议

1、作用

测试远端服务器的端口。

2、语法

telnet+ip地址+端口,例如:telnet 192.168.1.1 80

3、用户等级

image.png