IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 第二次作业 -> 正文阅读

[网络协议]第二次作业

TCP和UDP的区别
1,TCP是面向连接的协议,UDP是无连接的协议;
注解:连接是指面向连接
在正式传输数据之前,先通过预备好的协议,建立点到点的连接,之
后再传输数据。
2,TCP协议传输是可靠的,UDP协议传输“尽力而为”;
注解:

TCP协议是一种可靠的通信协议,它要求传输的过程是可靠的,因此需要经过三次握手的环节,确立连接关系之后,才可以进行传输。除此之外,TCP还有超时重传机制,还有排序的机制,有发送的窗口,有窗口大小等等,保证接收方接收到的就是发送方发送过去的。

UDP是一种不可靠的通信协议,它不需要建立连接,不需要对连接进行确认ACK的操作,不需要重传,不需要排序,它只管传输

3,TCP可以进行流控,UDP不行;
注解:在文件传输的过程中,tcp所传输的数据包数量不是一成不变的,而是会不断增加,有时被传输方无法处理过多的数据包,则传输方会重传丢失的数据包,并且在之后的传输过程中再次寻求一次传输的数据包数量的增加,因为被传输方的处理能力不是不变的。但udp却不具备相应的机制。
4,TCP可以进行分段,UDP不行;
注解:由于udp不具备分段所需要的机制,所以tcp可以分段进行发送,而udp则不行。
5,TCP传输速度较慢,占用资源较大;UDP传输速度较快,占用资源小
注解:因为TCP在传递数据之前,要先建立连接,这会消耗时间;在数据传递时,确认机制、重传机制等都会消耗大量的时间和占用大量资源。
在这里插入图片描述

SYN(synchronous建立联机)

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)
我们常用的是以下三个标志位:

  • SYN - 创建一个连接

  • FIN - 终结一个连接

  • ACK - 确认接收到的数据

?urg:紧急指针是否有效。为1则表示某一位需要被优先处理。

ack:确认号是否有效,一般置为1.

psh:提示接受端应用程序立即从缓冲区把数据冲走。

rst:强制断开。

syn:请求建立连接,若建立连接,则设置为1。

fin:希望断开连接。

伪头部校验 --- 32位源IP地址,32位目标IP地址,8位保留,8位协
议,16位总长度 --- 反码相加法

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

1.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

2.第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

3.第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据.

第一次握手:

客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。

第二次握手:

服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

第三次握手:

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1

?

?

?

第一次挥手:主动关闭方发送一个FIN并进入FIN_WAIT1状态

第二次挥手:被动关闭方接收到主动关闭方发送的FIN并发送ACK,此时被动关闭方进入CLOSE_WAIT状态;主动关闭方收到被动关闭方的ACK后,进入FIN_WAIT2状态

第三次挥手:被动关闭方发送一个FIN并进入LAST_ACK状态

第四次挥手:主动关闭方收到被动关闭方发送的FIN并发送ACK,此时主动关闭方进入TIME_WAIT状态,经过2MSL时间后关闭连接;被动关闭方收到主动关闭方的ACK后,关闭连接

TCP传输可靠性的保障机制 --- 确认,重传,排序,流控 --- 滑动窗口
机制
网络层 --- IP地址 ---- IP
在这里插入图片描述

?

?

TCP和IP都是可变长头部
TTL -- 生存时间 ---- 当数据包每经过一次路由器的转发,这个TTL值将
减1。当一个数据包中的TTL值为0时。则路由器将不再对其进行转发,将
直接丢弃。
版本号:区分ipv4和ipv6。
首部长度:老生常谈,同上。
总长度字段:16bit,顾名思义,表示整个IP报文的长度,也就是头部加上数据长度,减去头部字段就是IP报文的数据字段的长度了。

ID字段:16个字节,标识不同数据,比如这个数据是用来做语音的,表示为A,另外一个数据是视频的,表示为B。一个数据包分片后的这个字段保持相同,方便同一个数据包进行组合。

Flags:区分分片后的数据包,占3bit,第一位为保留位,保持为 0,第二位DF(不分片)位,表示是否为能进行分片,如果是1,表示不能进行分片,0表示可以进行分片,最后一位为MF(更多的分片)为,表示是不是最后的分片,如果是最后的分片,表示为0,不是最后的分片,表示为1,后面还有更多的分片。

片偏移:占13位,表示分片报文离第原始报文头部相离的长度(比如1600,表示这个分片离最初报文头部有1600字节,如果按照最大1500MTU来分片的话,第二个分片有120个字节),第一个分段的片偏移为零。有了片偏移和ID字段,我们就可以按照顺序对分片的报文进行组装了。这里需要补充的是,分片只针对数据部分,不针对报文头部,数据部分最多为1480字节。

MTU ---- 最大传输单元 ---- 1500字节
MSS ---- 最大段长度 --- 1460
虽然封装在IP地址之上,但是根据功能,一般被归纳为网络层协议。

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-10 11:24:18  更:2021-12-10 11:24:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:16:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码