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/IP协议栈 -> 正文阅读

[网络协议]一文详解 -----TCP/IP协议栈

目录


模型图

物理层

数据链路层

网络层

? ? ?-----IP报文头部

传输层

? ? -----TCP报头

应用层



模型图

物理层

  • 传输比特流;规定物理特性;

  • 集线器,中继器

  • 介质

    • 同轴电缆:早期使用

      • 两种标准,传输距离不同,10M

    • 双绞线

????????屏蔽双绞线(STP),非屏蔽双绞线(UTP)

????????类型:1, 2, 3, 4, 5,超5, 6,超6, 7

  • ?????????光纤

?????????

? ? ? ? ? ? ? 通过光信号进行传输??

  • 双工模式

    • 半双工

    • 全双工

    • 同一物理链路连接的设备双工模式必须相同

  • 线序------双绞线

    • 网线由双绞线+RJ-45水晶头组成

    • 线序

      • 568A

        • 将被568B中的1,3对调;2,6对调

      • 658B

        • 橙白,橙,绿白,蓝,蓝白,绿,棕白,棕

    • 直连型和交叉线

数据链路层

  • 主要设备------- 网桥,交换机

  • 链路类型

    • 局域网---以太网

    • 广域网---PPP,HDLC,FR,ATM

  • MAC地址

    • 48位二进制;减分十六进制;

    • 两部分

      • 前24位:表示厂商ID

      • 后24位:表示产品ID

  • 数据帧

    • 以太网-2,802.3

  • Ethernet_Ⅱ格式

????????

? ? ? ? ? ? ? ?FCS帧校验序列----CSC算法(校验盒)?

  • 数据帧的发送方式

    • 单播

    • 广播

    • 组播

网络层

  • 逻辑寻址

  • IP地址是有类分址

  • 特殊地址
    • 网段:主机位全0的地址;1.1.1.0/24;x.x.x.0/24,x.x.0.0/16

      • 在任意一个网段中,主机位全1或全0的IP不能使用

    • 本地链路地址:168.254.0.0/16

    • 定向广播地址:主机位全1的地址;192.168.1.255/24

    • 广播地址:255.255.255.255

    • 本地测试地址(环回):127.x.x.x

    • 无效地址:0.x.x.x;0.0.0.0--->所有网络

    • 私有地址

      • A类:10.0.0.0/8 (10.0.0.0-10.255.255.255)

        • 一个地址段

      • B类:172.16.0.0-172.31.255.255

        • 16个地址段

      • C类:192.168.0.0-192.168.255.255

        • 256个地址段

    • 公有地址

      • 除了上述私有地址和特殊地址外的地址

      • 在全球具有唯一性

? ? ?-----IP报文头部?

版本:一般为4或6,在这仅指的是IPV4,4bit长度

头部长度:最小为20字节,最大为60字节

服务类型:占8字节(TOS)

16位总长度:包括IP头部和数据段的长度

8位生存时间:单位为路由器的个数,减为0时,数据就回被丢弃;常见的TTL值:255,128,64

8位协议:协议号,标记上层(传输层和应用层)使用的是什么协议,6:TCP;17:UDP;89:OSPF

16位首部校验和:只对IP头部进行校验

32位源IP

32位目标IP

  • 分片-----把一个大的报文分成很多个小的报文进行传输(标识位,标志位,片偏移)

  • 分片的原因:就是因为有了MTU的存在,无法将大于MTU的报文一次性传输完成。所以需要分成多个小的报文(最大为1500字节),这也就是出现分片操作的原因。

    • 根据链路类型确定MTU的大小,以太网中的MTU一般为46-1500字节

    • 数据报文在网络中传输的路径不可控,就会出现某个报文先发后到,从而出现乱序的问题。接收方需要将接受到的报文进行重组,也就是16位标识符对报文进行标识,根据16位标识符进行重组。标识是随机产生的,假设第一个数据报文的标识为X,下一个报文为X+1...

    • 但是我们无法判断什么时候所有的报文接受完毕,这时候就有3位标志位的出现

      0:无意义,只是用来占位的 ? ?  DF:1:不分片,0:分片 ? MF:1:后续还有,0:代表是最后一个报文
    • 仅使用标识位和标志位还不能完成分片。如果在传输过程中,某一个报文丢了,就需要发送方重新发送丢掉的这个报文,但是发送方无法知道丢掉的是哪一个报文,所以就有了片偏移的出现。第一个报文的片偏移为0,第二个报文的片偏移为1500...这样发送方只需要重发片偏移为某个数值的报文。

?

计算:MTU为1500,以太网类型,传输5000字节的报文,片偏移的单位为8个字节,计算出每个报文的片偏移。
分析:在这一个报文的最大为1500字节,其中MTU包含20字节的IP头部,所以每个报文的长度为1480字节
第一个报文的片偏移:0/80
第二个报文的片偏移:1480/8=185
第三个报文的片偏移:2960/8=370
第四个报文的片偏移:4440/8=555?

传输层

  • 端口号

    • 表示不同进程

    • 静态端口

      • 1-1023

      • 常见端口:telent---23,ftp---20/21,http---80,https---443,DNS---53

    • 动态端口

      • 1024-65535

  • TCP协议----传输控制协议

    • 面向连接的可靠的传输协议

? ?-----TCP报头

(1)16位端口号:告诉主机该报文是来自哪里,以及传给哪个上层协议或者应用程序(目标端口)的。

(2)32位序列号:给发送的数据编号。(随机值+偏移量:偏移量决定序号的大小);32位序列号能够指定数据传过去的序号。

作用:A:保证发送的数据有序;B:保证重复的数据被丢弃。

(3)32位确认号:对A端发送的数据进行确认并回馈的序号。(在32位序中的序号值+1返回回去)。

作用:保证数据能够有效地到达对端。

(4)4位头部长度:因为4位最大能表示15,所以最大为60字节。

(5)6位标志位:

PSH: 类似于紧急指针,通知尽快读取数据;

RST: 请求重新建立连接;

SYN:请求建立连接(三次握手时);

FIN:请求断开连接(四次挥手时);

ACK:表示确认号是否有效;

URG:表示禁忌之阵是否有效

(6)16位窗口大小:控制发送数据的速度或流量。

(7)16位校验和:由发送端填充,接收端对TCP报文在传输过程中是否损坏。校验不仅包括头部部分,还包括数据部分。

(8)16位紧急指针:一个正的偏移量(相当于当前序号的偏移)。紧急指针是发送端向接受端发送紧急数据的方法。

TCP的特点的可靠性就体现在:32位序号,32位确认号,16位校验和。面向连接体现在:URG,RST,SYN,FIN,ACK,PSH等六位标志。

TCP分段

  • 如果报文经过了TCP分段就无须IP再进行分片,主要原因时TCP的重传机制

  • 在TCP传输中报文长度受限是因为有MSS的存在-----最大传输段,MSS=MTU-IP-TCP

1号路由器---->2号路由器的MTU为1500,2号路由器---->3号路由器的MTU为576
1号路由器发送1500字节的报文给2号路由器,其中IP报头中DF字段为1,因为MTU和不能分片的限制,故不能转发到3号路由器,所以2号路由器给1号路由器回复消息,其中携带从2到3的MTU值。以此类推,找到整条路径中最小的MTU?

可靠性

  • 确认机制:每收到一个报文,都需要进行一次确认

  • 重传机制:超时重传,当一个数据段中的某一个报文丢失,会提示要求重新传输这个报文。

  • 排序机制:根据序列号进行重组

  • 流控机制(滑动窗口机制):通过窗口大小来控制流量的接受

应用层

  • 应用层为应用软件提供接口,使应用程序能够使用网络。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等

    应用层的PDU被称为Data(数据)

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:14:47  更:2022-10-08 21:14:51 
 
开发: 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年12日历 -2024/12/28 7:00:05-

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