TCP/IP网络参考模型

目录

TCP/IP四/五层模型

应用层常见协议——传输数据PDU

传输层协议——传输数据段

端口号

TCP面向连接服务CONS 

UDP无面向连接服务DLNS 

网络层协议——传输数据包

IP协议

数据链路层——传输数据帧

Ethernet帧格式

IEEE802.3帧格式


TCP/IP四/五层模型

TCP/IP网络参考模型_第1张图片

标准定义的TCP/IP模型为四层模型,没有对网络接口层进行明确的细分

但是我们在使用TCP/IP模型时,一般会网络接口层分为链路层物理层来使用


应用层常见协议——传输数据PDU

通过各种协议向终端用户提供业务应用

DNS——建立域名与IP之间的关系

TCP/IP网络参考模型_第2张图片

 HTTP——超文本传输协议

HTTP将图像,视频,文件有,音乐等传输给客户端供用户上网访问

不安全,现在基本都是用Https协议

HTTPS——安全的超文本传输协议

相比于Http增加了加密验证功能

TCP/IP网络参考模型_第3张图片

 SMTP——用于发送邮件

POP3/IMAP——用于接收邮件

IMAP功能相比于POP3更多

TCP/IP网络参考模型_第4张图片

 IMAP和POP3的主要区别

 Telnet——远程登录服务的标准协议

不安全,现在一般使用SSH进行远程登录

SSH——加密远程登录管理

通过密钥进行加密认证

FTP——文本传输协议

提供可靠的文件传输 服务,具有认证,权限的功能

TFTP——简单文件传输协议

提供不可靠的文件传输服务

消耗资源小,速度快

常用于网络设备的配置文件和系统文件传输


传输层协议——传输数据段

传输层提供面向连接或非面向连接服务以及进行重传前的差错检验

传输层只定义了两种协议TCP和UDP

端口号

端口号用来区分不同的应用层协议,当解封时看到传输层携带的端口号,就能了解到上层应用层携带的是何种应用层协议

端口号分类

0~1023      公认/知名端口号

1024~49151  应用注册使用的端口号

49152~65535  私有/动态端口(主机/客户端使用)

知名端口号

TCP/IP网络参考模型_第5张图片

TCP面向连接服务CONS 

面向连接服务——在通信前要建立会话连接

TCP报文格式 固定长度20字节,可变长度40字节

TCP的最大报文段长度即MSS一般是1460字节(1500MTU-20IP Head-20TCP Head)

MSS(最大分段大小)指数据的长度最大1460字节

TCP/IP网络参考模型_第6张图片

TCP/IP网络参考模型_第7张图片

 源端口    Source port       

标识哪个应用程序发送的

目标端口  Destination Port  

标识哪个应用程序接收的

序列号   Sequence Number(简称seq)

在TCP传送的数据流中,每一个字节都有一个序号,在发送报文时会携带Seq

seq=seq+载荷(seq是自己上次发的seq)

载荷就是上层的所有包,此处指应用层的包(数据data

seq是32位的无符号数,当seq到达2^32-1后从0开始,依次循环

例如:第一报文段的seq为300,而且载荷数据共100字节,则下一个报文段的seq就是400

确认序号  Acknowledge  Number (简称ack)

确认序号对收到的TCP报文做确认,Ack=seq+载荷(seq是别人发的seq

注意:只有Flags中的ACK标志为1时,确认序号才有效

报头长度Header  length

用0000~1111来标识,其得出来的数值乘以4就是报文头部长度

即0001=1,则其就代表报文头部为4个字节

tcp头部默认20个字节,其报文长度也就是0101(5)

标识  Flags                                    

Urgent:紧急指针位。当URG=1时,先发送此报文,不用等待,和紧急位字段一起使用。

ACK:确认位。只有当ACK=1时,确认序号字段才有 效;

Push:急迫位。当PSH=1时,发送到对方后,对方先接收处理。

RST:重置位。当RST=1时,表示出现连接错误,必须释放连接,然后再重建传输连接。复位比特还用来拒绝一个不法的报文段或拒绝打开一个连接;

SYN:同步位。SYN=1代表SYN置位,SYN=1,ACK=0时表示请求建立一个连接,携带SYN标志的TCP报文段为同步报文段;只有刚开始前两次握手SYN置位。

FIN:终止位

窗口  Window

通过接收端来调节窗口大小来控制网络拥塞,最大65535

当其为0时,报文为Zero window包下个包为保活包(keep-alive)

检验和  Checksum

对头部和内容进行校验

紧急位  Urgent Pointer

只有当Flags的URG标志置1时紧急指针才有效。

紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

先处理此序号的报文

可变长度 Option(0~40)

TCP流量控制

TCP流量控制主要使用滑动窗口协议,滑动窗口是接受数据段端使用的窗口大小,用来告诉发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的。

TCP会话建立——三次握手

通过标志位syn、ack以及序列号seq确认序列号ack实现

TCP三次握手,一定会交互三次报文

TCP/IP网络参考模型_第8张图片

 会话建立的三种情况

发送信号→对方确认→收到回复(就是上述图片的情况)

发送信号→对方否认→重传

发送信号→发送超时→主动重传

TCP会话结束——四次握手

通过标志位fin、ack以及序列号seq确认序列号ack实现

TCP四次握手,不一定交互四次报文(主机直接拔电的情况)

TCP/IP网络参考模型_第9张图片

UDP无面向连接服务DLNS 

无面向连接服务——在通信前要不需要建立会话连接,直接开始传输数据,不可靠

报文格式

TCP/IP网络参考模型_第10张图片

TCP/IP网络参考模型_第11张图片

 源端口    Source port       

标识哪个应用程序发送的

目标端口  Destination Port  

标识哪个应用程序接收的

长度      Length

UDP头部+UDP数据的字节数,最小为8字节

检验和  Checksum

对头部和内容进行校验


网络层协议——传输数据包

提供逻辑地址,通过寻址来选择合适的路由和交换节点,实现数据从源到目的地的转发

网络层协议主要是IP协议,除了IP协议还有GRE、ICMP、IGMP、OSPF等协议

IP协议

IP协议主要分为IPv4协议和IPv6协议,此处只讨论IPv4协议

报文格式       固定头部20字节,可变头部40字节(总共20~60字节)

IP报文最大长度为1500字节(头部+数据)

TCP/IP网络参考模型_第12张图片

TCP/IP网络参考模型_第13张图片

 Version 版本

IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6

Header Length 头部长度

固定部分的长度(20字节)和可变部分的长度之和

通过0000~1111来标识

即0001=1,则其就代表报文头部为4个字节

IP固定头部20个字节,其报文长度也就是0101(5)

DS Field 区分服务字段

用于QoS

Total Length 总长度

IP报文的总长度。报头的长度和数据部分的长度之和。

总长度最大为MTU的值,缺省为1500

Identification  标识——分片使用

该字段标记当前分片为第几个分片,在数据报重组时很有用(让其按照顺序重组)

Flags  分段标志——分片使用

该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片)

后面是否还有分片(是否是最后一个分片)。

该字段共3位。R、DF、MF三位。目前只有后两位有效

 R——保留位必须为0

DF——报文是否分片,为1表示不分片,为0表示分片。

MF——报文是否是最后一个分片,为1表示“更多的片”,为0表示这是最后一片。

例如:0x00---000  代表分片,最后一片

         0x40---010  代表不分片,最后一片

         0x20---001  代表不分片,还有更多的片

Fragment Flags 分段偏移——分片使用

指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置,为 0 代表是第一个包

TTL  存活时间

IP报文所允许通过的三层设备的最大数量,最大为255

每经过一个三层设备,TTL减1,当为0时,路由器将该数据报丢弃。

丢弃报文时向报文中的源IP地址发送ICMP错误消息(TTL Exceeded包)类型为 11 0

Protocol 协议

该值标识网络层的上层协议,可以是其它网络层协议,也可以是传输层协议

TCP/IP网络参考模型_第14张图片

 Header  Checksum  校验和

计算IP头部的校验和,检查IP报头的完整性

Source Address源地址

Destination Address 目的地址

Options   可选字段(0~40字节)


数据链路层——传输数据帧

将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测

数据链路层定义了两个子层

LLC  逻辑链路控制

负责识别网络层的协议类型,对网络层的数据进行封装并向下层传递

MAC  介质访问控制

负责控制物理层设备,也就是MAC地址,大小为48位二进制(12位十六进制)

代表一个网络接口的物理地址,全球唯一

24供应商代码(组织唯一标识符OUI,由IEEE分配和管理)+24厂商自己分配

第八位为0是单播,为1是组播

以太网帧的两种标准帧格式

Ethernet_Ⅱ、IEEE802.3

IEEE802.3是Ethernet的前生,目前基本未使用(STP目前使用的是IEEE802.3帧格式)

Ethernet帧格式

帧大小为64~1518,NTU最大传输单元默认为1500

Type类型值大于等于1536即(0x0600)

TCP/IP网络参考模型_第15张图片

 DMAC

目的MAC地址 6字节

SMAC

源MAC地址 6字节

Type

标识上层协议类型   2字节

TCP/IP网络参考模型_第16张图片

TCP/IP网络参考模型_第17张图片

IEEE802.3帧格式

帧长度字段值小于1500(0x05DC),MTU为1492

TCP/IP网络参考模型_第18张图片

TCP/IP网络参考模型_第19张图片

 DMAC

目的MAC地址 6字节

SMAC

源MAC地址 6字节

Length

定义了Data字段包含的字节数,不包过CRC检验码

DSAP

目的服务访问点,此处表示后面类型为STP帧

当为0x06,表示后面类型为IP帧

当为0xfe,表示后面类型为ISIS帧

SSAP

源服务访问点,此处表示后面类型为STP帧

当为0x06,表示后面类型为IP帧

Control 字段

通常为0x03,标识无连接服务的IEEE 802.2无编码数据格式

OUI

组织唯一标识符,通常为MAC地址的前3字节

Type

标识以太网帧所携带的上层数据类型

ISIS包

TCP/IP网络参考模型_第20张图片

 STP包

TCP/IP网络参考模型_第21张图片

你可能感兴趣的:(网络,tcp/ip,网络协议)