TCP/IP网络参考模型

这篇具有很好参考价值的文章主要介绍了TCP/IP网络参考模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

TCP/IP四/五层模型

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

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

端口号

TCP面向连接服务CONS 

TCP报文格式

TCP数据传输——ACK确认机制

TCP会话建立——三次握手

TCP会话结束——四次握手

TCP流量控制——滑动窗口协议

TCP可靠传输机制

TCP拥塞控制

UDP无面向连接服务DLNS 

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

IP协议

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

Ethernet_II帧格式

IEEE802.3帧格式


TCP/IP四/五层模型

TCP/IP协议簇由来
TCP/IP协议簇是基于DoD模型而订制的各种网络协议
而DoD模型(美国国防部模型)是美国国防部设计的一个网络模型,它相当于一个OSI模型的精简版,OSI模型是7层,而它是4层,并且两者具有对应关系
目前直接将DoD模型称为为TCP/IP模型,并且现在网络通信基本上使用的都是TCP/IP模型

tcp/ip参考模型,网络,tcp/ip,网络协议

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

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


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

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

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

tcp/ip参考模型,网络,tcp/ip,网络协议

HTTP——超文本传输协议

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

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

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

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

tcp/ip参考模型,网络,tcp/ip,网络协议

SMTP——用于发送邮件

POP3/IMAP——用于接收邮件

IMAP功能相比于POP3更多

tcp/ip参考模型,网络,tcp/ip,网络协议

 IMAP和POP3的主要区别

tcp/ip参考模型,网络,tcp/ip,网络协议

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

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

SSH——加密远程登录管理

通过密钥进行加密认证

FTP——文本传输协议

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

TFTP——简单文件传输协议

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

消耗资源小,速度快

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


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

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

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

端口号

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

端口号分类

0~1023             公认/知名端口号

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

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

知名端口号

端口号 指定的上层应用层协议 所属传输层协议
20 FTP数据平面 TCP
21 FTP控制平面 TCP
22 SSH TCP
23 Telnet TCP
25 SMTP TCP
80 HTTP TCP
110 POP3 TCP
443 SSL TCP
179 BGP TCP
53 DNS TCP/UDP
67 DHCP(服务端监听的端口) UDP
68 DHCP(客户端监听的端口) UDP
69 TFTP UDP
161 SNMP UDP
520 RIP UDP

TCP面向连接服务CONS 

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议

TCP适用场景

文件传输(对数据准确性要求高、速度可以相对慢)

邮件传输(对数据准确性要求高、非紧急)

远程登录(对数据准确性要求高、有连接的概念)

TCP报文格式

固定长度20字节,可变长度40字节

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

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

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

源端口    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+载荷(ack = 对方发来报文的seq+对方发来报文的载荷)

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

如何通过对端发来的ACK验证对端是否收到了我发送的数据

本端收到的对端发来的ACK,如果该ACK等于自己上个报文的seq+载荷,则认为对端收到了我发送的上一个报文

报头长度Header  length

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

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

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

在TCP连接建立阶段,该头部一般为24字节(0110--6),多出来的4字节为MSS协商

标识  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)

会携带MSS(最大分段大小)

MSS表示TCP数据包每次能够传输的最大数据分段(该大小包含MSS最大报文字段长度)

通过MTU协商出MSS,通常MSS=MTU-IP头部长度-TCP头部长度+MSS字段的长度(一般4字节)

建立TCP连接时,在发送第一个SYN数据报文的时候会携带MSS信息(告诉对端我期望接收到的TCP报文的最大长度是多少),对端发送(SYN ACK)报文携带协商后的MSS

后续传输数据时就不携带MSS字段

MSS和MTU的区别

MTU为最大传输单元:是指链路层的最大传输单元,包含TCP头部和IP头部,不包含数据链路层封装头

tcp/ip参考模型,网络,tcp/ip,网络协议

TCP数据传输——ACK确认机制

tcp/ip参考模型,网络,tcp/ip,网络协议

TCP会话建立——三次握手

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

TCP三次握手,至少会交互三次报文

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

会话建立的三种情况

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

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

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

TCP会话结束——四次握手

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

TCP四次握手,不一定交互四次报文(也有可能因为故障错误发送RST置位报文直接断开连接)

RST置位情况

服务器端口没有打开、服务器中途中断服务、服务器响应太慢导致用户终止连接

客户端段异常终止服务
网络攻击等

TCP四次挥手

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

TCP流量控制——滑动窗口协议

与其相关联的是窗口Windows字段,最大65535

为什么要提出窗口机制

我们知道TCP是面向字节流传输的,即将应用程序看为一串无结构的字节流进行传输

TCP接口有一个自己的发送缓冲区,如果这个字节流太长的话,TCP会将其拆分之后一段一段去发送;当字节流太短的时候,会将多个子接口集中到发送缓冲区,当达到一定的报文长度后将其发送出去;当将数据发送之后,只有等到对方发来正确的确认报文之后,才会将缓冲区的数据删除,进行下一次发送;以A和B通信为例, 正常情况下,A每发送1句话,B就对其进行确认确认(通过回复ACK确认,ACK的序列号=收到的seq+1来确认)

不过这样传输效率低下,因此引入了窗口的概念,针对发送端的多次数据报文通过一个ACK进行回应

tcp/ip参考模型,网络,tcp/ip,网络协议

窗口机制的原理

但是我们无法知道对方窗口的大小,不知道对方窗口能够接收的数据大小,过多过少都会影响数据的传输效率;因此通过窗口机制,协商双方的窗口大小(两边的窗口大小是一直在变化的),加速数据传输,进行流量控制

例如:A发送多句话,B通过一句确认回复(通过回复ACK确认,ACK的序列号=收到的最后一句话的seq+其载荷);并且A会根据B回复的ACK确认报文来了解到B的窗口大小,以及B接收了哪些报文

窗口大小如何协商

tcp/ip参考模型,网络,tcp/ip,网络协议

1、当A发送3句话,但是如果B的窗口大小只有2句话时,则第三句话会被丢弃;
2、此时B给A回复的ACK为A的第二句的序列号+1,并且将自己窗口大小为2告诉A
3、当A收到后就知道第三句话没有被B接收,并且知道了接收端的窗口大小,此时A向B发送时会控制窗口大小,即此时发送第三句和第四句话给B

TCP可靠传输机制

超时重传

tcp/ip参考模型,网络,tcp/ip,网络协议

接受方没有收到发送方发来的报文,也就不会回复确认报文

发送方超时时间内没有收到确认报文,认为对方没有收到数据,重新发送数据

确认丢失

tcp/ip参考模型,网络,tcp/ip,网络协议

接收方收到了发送方的报文,但是回应的确认包中途丢失

此时发送方收不到确认报文,超时重传

当重传报文发到接收方时,接收方丢弃重传的报文,并重新发送确认

确认迟到

tcp/ip参考模型,网络,tcp/ip,网络协议

第一次确认包由于延迟很久才收到,但是在发送方收到第一次确认包的时候已经通过重传报文、重传确认包进行了确认,则发送方对于该延时的确认包不进行任何操作

TCP拥塞控制

拥塞控制的作用

在某个时间段内,如果我们对于网络中某个资源的需求超过了该资源所能提供的可用部分,这个时候网络性能发生变化,出现了网络拥塞

拥塞控制就是避免网络中出现过多的数据,避免网络链路和网络设备出现过载情况而出现网络拥塞

拥塞控制方法

tcp/ip参考模型,网络,tcp/ip,网络协议

慢启动算法:最开始发送较小的数据包,然后发送的数据包大小依次指数规律递增

拥塞避免:经过慢启动阶段后就开始使用拥塞避免算法来进行拥塞控制(拥塞窗口成线性增长,即每轮询一次就将cwnd加1,每次都只加1,避免了拥塞窗口快速增长)

快重传算法:主要用于丢包检测,更快的重传数据包,更早的调整通塞机的状态,从而持续升窗;

快恢复算法:当发送方检测到连续丢包时,TCP会触发快速重传并进行降窗状态,将cend减少至一半,使得一次发送更少的数据,然后在慢慢增大,预防网络拥塞

UDP无面向连接服务DLNS 

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

UDP适用场景

传输小数据包的场景(UDP不会主动重传,只有接收方重新申请时才会重传)

对实时性要求高的场景(直播比赛等)

报文格式

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

 源端口    Source port       

标识哪个应用程序发送的

目标端口  Destination Port  

标识哪个应用程序接收的

长度      Length

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

检验和  Checksum

对头部和内容进行校验


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

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

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

IP协议

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

IPv6协议以及报文讲解:IPv4与IPv6地址讲解-CSDN博客

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

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

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

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三位。目前只有后两位有效

tcp/ip参考模型,网络,tcp/ip,网络协议

 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 协议

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

协议号 上层协议
1 ICMP
2 IGMP
9 IGRP
41 IPv6(IPv6过渡技术
IPv4封装IPv6时使用)
47 GRE
50 ESP
51 AH
57 SKIP
88 EIGRP
89 OSPF
115 L2TP
6 TCP
17 UDP

Header  Checksum  校验和

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

Source Address源地址

Destination Address 目的地址

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


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

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

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

LLC  逻辑链路控制

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

MAC  介质访问控制

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

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

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

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

数据链路层主要协议

1、PPP(点对点链路)

2、Ethernet(以太网链路)

3、FR(帧中继链路)

4、HDLC(高级数据链路控制)

5、ATM(异步传输模式)

6、802.11协议(无线传输协议)

PPP协议讲解(PPP连接状态、PPP报文)_静下心来敲木鱼的博客-CSDN博客

以太网链路(本次主要介绍以太网帧)

运行在MAC层之上

在以太网链路上传输的数据包成为以太帧

以太网帧(MAC帧)的两种标准帧格式

Ethernet_Ⅱ、IEEE802.3

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

Ethernet_II帧格式

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

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

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

DMAC

目的MAC地址 6字节

SMAC

源MAC地址 6字节

Type

标识上层协议类型   2字节

协议
0X0800 IPV4
0X86DD IPV6
0X0806 ARP
0X0808 帧中继ARP(反向ARP)
0X8809 LACP
0X8000 IS-IS
0X8100 80.21Q(VLAN)
0X8847 MPLS单播
0X8848 MPLS组播
0X8863 PPPOE发现阶段
0X8864 PPPOE会话阶段
0X88CC LLDP
0X88F5 MVRP

IEEE802.3帧格式

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

tcp/ip参考模型,网络,tcp/ip,网络协议

tcp/ip参考模型,网络,tcp/ip,网络协议

 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参考模型,网络,tcp/ip,网络协议

 STP包

tcp/ip参考模型,网络,tcp/ip,网络协议文章来源地址https://www.toymoban.com/news/detail-701843.html

到了这里,关于TCP/IP网络参考模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OSI参考模型与TCP/IP协议簇

             国际标准化组织(ISO)开发了开放系统互连(OSI)模型。它将网络通信分为七层。在此模型中,第1-4层被认为是下层,主要关注数据的移动。第5-7层(称为上层)包含应用程序级别的数据。网络的运行有一个基本原则:“传递”。每一层负责一个非常具体的工作,

    2024年02月12日
    浏览(30)
  • TCP/IP网络参考模型

    目录 TCP/IP四/五层模型 应用层常见协议——传输数据PDU 传输层协议——传输数据段 端口号 TCP面向连接服务CONS  TCP报文格式 TCP数据传输——ACK确认机制 TCP会话建立——三次握手 TCP会话结束——四次握手 TCP流量控制——滑动窗口协议 TCP可靠传输机制 TCP拥塞控制 UDP无面向连

    2024年02月09日
    浏览(40)
  • 协议分层与OSI参考模型【图解TCP/IP(笔记三)】

    协议的分层 OSI参考模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。 在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口

    2024年02月13日
    浏览(42)
  • 华为数通HCIA-网络参考模型(TCP/IP)

    作用:指导网络设备的通信; OSI七层模型: 7.应用层:由应用层协议(http、FTP、Telnet.)为应用程序产生对应的数据; 6.表示层:将应用层产生的数据转换成网络设备看得懂的语言 5.会话层:为应用数据产生一个独立的会话,放置不同数据之间的相互干扰 4.传输层:为应用数

    2024年02月14日
    浏览(38)
  • OSI(开放系统互联基本参考模型)七层结构及TCP/IP协议栈

    谨以此篇记录我的面经准备 上三层称 应用层 ,用来 控制软件 方面。下四层总称 数据流层 ,用来 管理硬件 。 数据在发至数据流层的时候将被拆分,在传输层的数据叫段,网络层叫包,数据链路层叫帧,物理层叫比特流,这样的叫法叫PDU(协议数据单元)。 用户与网络的

    2024年02月03日
    浏览(37)
  • 【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型

    2024年02月05日
    浏览(41)
  • 计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

    OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:数据链路层与物理层 应用层:包含上三层 异构网络互联:实现不同厂家生产的设备进行相互通信 IP协议面向无连接 传输层是端到端,有实现可靠传输的功能,即有面向连接的功能 传输层

    2024年01月23日
    浏览(52)
  • 【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型

    ​ 🌈个人主页:  Aileen_0v0 🔥系列专栏:  一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 面向连接三阶段(建立,传输,释放) 面向无连接(直传) 通用的5层参考

    2024年02月05日
    浏览(72)
  • 网络编程——深入理解TCP/IP协议——OSI模型和TCP/IP模型:构建网络通信的基石

    TCP/IP协议,即 传输控制协议/互联网协议 ,是一组用于在计算机网络中实现通信的协议。它由两个主要的协议组成:TCP(传输控制协议)和IP(互联网协议)。TCP负责确保数据的可靠传输,而IP则负责路由数据包以在网络中传递。TCP/IP协议簇还包含其他辅助协议,如UDP(用户数

    2024年02月14日
    浏览(53)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包