传输层的协议

148 阅读3分钟

(学习笔记的第六页)

tcp和udp有什么区别

tcp的传输稳定,传输失败还可以重新再传,但就是慢
udp的传输不稳,传输失败并不可以再传,但传输很快

TCP

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

Tcp的九个特性
1. 工作在传输层
2. 面向链接协议
3. 全双工协议
4. 半关闭
5. 错误检查
6. 将数据打包成段,排序
7. 确认机制
8. 数据恢复,重传
9. 流量控制,滑动窗口
系统每打开一个进程,系统都会分配pid(系统中的编号,方便管理),其次会分配一个端口号

端口号作用:两个进程直接通信 需要通过端口找到对方

端口号的三类:
1. 规定好的知名的端口号 80 443 人为规定
2. 系统随机分配(客户端 去访问服务器,系统会自动分配一个端口号给你)
3. 人类自由使用

三次握手和四次挥手

TCP控制位

URG(紧急位)
ACK(确认位)
PSH(急切位)
SYN(同步位)
RST(重置位)
FIN(断开位)

a想和b请求建立链接状态syn=1
a和b已经建立链接状态 ACK=1
a和b已经断开链接 fin=1

三次握手

image.png

第一次握手:
客户端向服务器端发送一项syn表示想要和服务器建立连接,并创建一个seq创建一个随机数
第二次握手:
服务器端接收到请求连接而且同意了,并要求客户端发送的随机seq数加上1(这样就好寻找到这个发送请求的客户端),然后也创建一个seq随机数,最后向客户端发送一个syn回去。
第三次握手:
客户端接收到服务器所以请求并照做,把自己的seq的加1,并学着服务端也让它加1(理由同上),并发送回去,这样就互相链接上了

四次挥手

image.png 第一次挥手:
客户端向服务器端发送断开连接请求
第二次挥手:
服务器端表示同意但不断开,因为还有一些数据没有传完
第三次挥手:
传输完了之后请求断开
第四次挥手:
接收到请求并断开

udp

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768   描述了 UDP。

Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

UDP特性

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