传输层:TCP、UDP、UDP-Lite、SCTP、DCCP(操作系统)
互联网层:ARP、IP、ICMP(操作系统)网络
网卡层数、硬件(设备驱动程序和网络接口)数量、物理
互联网层
-IP协议
IP地址作为主机的标识符。
没有重传机制,是一种不可靠的传输协议。
-ICMP协议
无法下发则返回异常,可用于网络诊断。
-ARP协议
用于从数据包中解析MAC 地址的协议。
传输层
-TCP协议
面向连接的传输层协议。确保通信可达。正确处理丢包和乱序异常。有效利用带宽,缓解网络拥塞。
规格复杂,不适合视频会议等场景。
-UDP协议
面向无连接的传输层协议。它不关心对等方是否收到它。如果要确保收到或确认对等连接,需要在应用程序中实现。
应用于小包数据或多播、广播、视频等多媒体领域。
应用层
HTTP、SMTP、FTP、TELNET、SSH、SNMP
TCP/IP分层模型
数据包:以太网包头+IP包首页+TCP包头+数据
套餐:包罗万象的术语
帧:数据链路层中数据包的单位
数据报:网络层之上的数据包单元,例如IP 和UDP
段:TCP数据流中的信息
消息:应用协议中的数据单元
包结构
以太网包头+IP包首页+TCP/UDP包头+数据+以太网包尾
每个包头包含:发送方和接收方地址、上层协议类型(或下一个包头的协议)
数据链路
共享媒体网络:竞争模式、令牌传递模式
非共享媒体网络:环路检测技术(生成树法、源路由法)、VLAN
IP协议
IP基础
网络层:实现终端节点之间的通信。
主机:配置有IP地址、不受路由控制的设备。
路由器(网关):IP地址+路由控制
节点:主机+路由器
IP协议的三大功能:IP寻址、路由(转发到最终节点)、IP打包和分组
路由控制:将分组数据发送到最终目的地址的功能
路由控制表:每台主机维护一个路由控制表
数据链路的抽象:IP是实现多个数据链路之间通信的协议。抽象出不同数据链路的不同特征也是IP的重要作用。
不同数据链路的区别:MTU(Maximum Transmission Unit)最大传输单元不同
IP分片处理:可与上层隔离数据链路的MTU差异
IP是面向无连接的:发送数据之前不需要建立连接。特点:需要时出站(无需连接),主机监控网络只接收自己的数据包,没有准备好可能会丢包,存在冗余通信。理由:简化、加快。
IP地址基础知识
IP地址:32=8*4网络ID+主机ID
网络标识:为数据链路的每一段配置不同的值
主机ID:同一网段内必须唯一
IP地址分类:
A类首地址以“0”开头。 1-8 位是网络标识符。 0.0.0.0-127.0.0.0是A类网络地址。最后24 位是主机标识符。最多支持2^24-2个主机(全0,全1保留,16777214);
B 类地址,前两位数字为“10”。 1-16为网络标识符,128.0.0.0-191.255.0.0为B类网络地址,后16位为主机地址,最多支持2^16-2个主机(65534);
C类地址,前两位数字为“110”。 1-24为网络标识符,192.0.0.0-223.255.255.0为C类网络地址,后8位为主机地址,最多支持2^8-2个主机(254个);
D 类地址,前两位数字为“1110”。 1-32是网络标识符,224.0.0.0-239.255.255.255是C类网络地址,没有主机标识符,常用于组播。
之所以保留全0和全1,是因为全0表示地址未知,而全1常被用作广播地址。
广播地址:本地广播(本网内广播)、直接广播(不同网络间广播)
IP组播:用于将数据包发送到特定组中的所有主机。组播可以穿透路由,但广播不能。
IP 多播和地址:多播使用D 类地址。可用范围为224.0.0.0 - 239.255.255.255,224.0.0.0 - 224.0.0.255范围不需要路由控制,可以在同一链路内实现组播。设置在此范围之外的组播地址,将会向全网所有组成员发送组播数据包(可以使用生存时间TTL Time To Live来限制数据包的到达范围)。对于多播,除路由器之外的所有主机都必须属于组224.0.0.1,并且所有路由器都必须属于组224.0.0.2。利用IP组播实现通信,除了地址之外,还需要IGMP等协议的支持。
子网掩码:区分网络标识和主机标识,比IP地址分类更加灵活。
全局地址和私有地址:全局地址需要在互联网内唯一,但私有地址不需要唯一,只需在同一个域内唯一。
路由控制
路由控制表:记录网络地址和接下来要发送到路由器的地址。
默认路由:可以与路由表中任意地址匹配的一条记录。一般为0.0.0.0/0或默认。
主机路由:IP地址/32。主要在不需要通过网络地址进行路由时使用。
环回路由:同一计算机上的程序之间用于网络通信的默认地址。 127.0.0.1 或本地主机。
路由汇总:可以有效减少路由表中的条目。例如,192.168.2.0/24 和192.168.3.0/24 变为192.168.2.0/23。
IP分割处理与再构成处理
数据链路不同,但MTU不同。
IP数据包的分片和重组:路由器分片和终端重组。缺点:增加路由器的负担,丢包导致整个数据报废。
路径MTU发现:PMTUD,路径中数据链路中最小的MTU。优化:减少分片
路径MTU 发现的工作原理:
第一次发送数据包时禁止分片。路由器丢弃并返回ICMP不可达消息,告知MTU信息。下次发送数据包时开始分片(UDP由IP层分片,TCP计算最大MSS段长度并自行分片)
IPv4首部
Version 版本、报头长度IHL Internet 报头长度、差异化服务TOS 服务类型、DSCP 段和ECN 段、总长度、标识、标志、片偏移、生存时间、协议、第一个校验和、源地址、目的地址、可选、填充、数据
IPv6 标头
版本、流量类别、流标签、有效负载长度、下一个标头、跳数限制、源地址、目标地址
IPv6扩展头
DNS
域名系统
ARP
地址解析协议
RARP: 反向地址解析协议
ICMP
确认IP包是否成功投递到目标地址。
两种类型:通知错误原因的错误消息和用于诊断的查询消息。
DHCP
动态主机配置协议
NAT、IP隧道、IP多播、IP任播、通信质量控制、显式拥塞通知、Mobile IP
TCP与UDP
传输层的两个代表性协议:TCP提供可靠的通信传输,UDP常用于将广播和详细控制留给应用程序的通信传输。
TCP:是一种面向连接的、可靠的流协议。为了提供可靠的传输,TCP实现了“顺序控制”或“重传机制”。此外,它还具有“流量控制”、“拥塞控制”、提高网络利用率等多种功能。 (接收方连续,发送10*100,接收1000)
UDP:是一种数据报协议,不具有可靠性。 (发送消息的大小可以保证)无法保证消息可达,因此应用程序有时会根据实际情况重新发送。
TCP和UDP的区别:TCP用于需要可靠传输的场景,而UDP主要用于需要高速传输和实时性的通信或广播通信。
UDP
UDP的特点和用途:用户数据报协议,没有复杂的控制机制,简单高效。流量控制、丢包重传、乱序纠正等都需要应用程序处理。主要用于:
1. 总数据包数量较少的通信(DNS、SNMP等)
2、视频、音频等多媒体通讯(即时通讯)
3.应用程序通信仅限于LAN等特定网络
4. 广播通信(广播、组播)
TCP
传输控制协议
TCP的特点和用途: TCP通过校验和、序列号、确认响应、重传控制、连接管理、窗口控制等机制实现可靠传输。
通过序列号与确认应答提高可靠性
发送方对发送的报文按字节进行编号,接收方收到报文后返回ack。 ack中携带了接下来要接受的序列号。如果发送方没有收到ack,就会开始重传。
重发超时如何确定
重传超时时间略大于RTT+偏差。
RTT:Round Trip Time,指报文段的往返时间
Deviation:RTT时间波动的值和方差。也称为抖动
如果重传后仍然没有响应,则重传会延长2倍或4倍的指数函数。
重发一定次数后,连接被强制关闭。
连接管理
三握手四挥手
TCP以段为单位发送数据
MSS: 最大段大小最大消息长度。 MSS在三次握手过程中取发送方和接收方支持的较小值。
利用窗口控制提高速度
窗口内的数据无需等待上一段的响应即可发送。设置缓存来保存发送的数据。数据发送后,如果如期收到响应,则不会重发,并且会清除缓存。当收到确认回复时,窗口滑动到确认回复的序列号。
窗口控制与重发控制
窗口控制时段丢失如何处理?
响应未能返回。数据已经到达对端,不需要重传。
报文段丢失。如果接收端收到了除应接受的序列号之外的数据,则会对迄今为止收到的数据返回确认响应(会重复发送尚未收到的序列号)。如果发送方连续3次收到相同的确认响应,就会重新发送相应的数据。这称为高速重传控制。
流控制
避免出现接收端无法处理的情况,导致数据丢失。接收端会通知发送端自己可以接收的数据大小,发送端将发送不超过该大小的数据。这个限制就是窗口大小。
TCP 标头中有一个特殊字段来告知窗口大小。接收端根据自身缓冲区情况填充该字段,发送端根据该字段调整发送窗口大小。
窗口检测报文:接收端缓冲区满后,将窗口大小设置为0。重传超时后,发送端发送窗口检测报文,接收端返回响应。如果窗口大小仍为0,则继续等待。当接收端的缓冲区再次可用后,将向发送段发送窗口更新通知。为了防止该通知丢失而导致业务无法继续,发送方将继续发送窗口检测报文。
拥塞控制
慢启动:开始数据传输时,避免一次发送过多数据,导致网络拥塞或瘫痪。定义了拥塞窗口的概念。慢启动时,拥塞窗口的起始大小设置为1MSS(也可以是多个MSS,根据实际情况确定)。此后,每收到一个ACK,拥塞窗口的值就加1。发送数据包时,将拥塞窗口的大小与接收主机通知的窗口大小进行比较,取较小的值,发送比它更小的数据量。
慢启动阈值:随着数据包的往返,拥塞窗口会增长得越来越快,拥塞情况会激增,甚至导致网络拥塞。因此,当拥塞窗口的值超过慢启动阈值时,每次收到ACK,拥塞窗口只允许按(1MSS字节/拥塞窗口字节)*1MSS字节的比例扩大。
当TCP通信开始时,没有设置相应的慢启动阈值。相反,在超时后重传时,会将其设置为当时拥塞窗口大小的一半。
重复确认响应发起的高速重传控制与超时重传机制的处理有些不同。前者网络拥塞较少。
当通过重复确认响应控制高速重传时,慢启动阈值设置为当时窗口大小的一半(严格来说设置为实际发送但未收到ACK的数据量的一半)。处理完重复的确认响应后,将窗口大小设置为慢启动阈值+3个数据段的大小。然后循环又重新开始。
TCP通信开始后,网络吞吐量会逐渐增加,但随着网络拥塞的发生,吞吐量会迅速下降,然后再次进入缓慢上升的过程。
提高网络利用率的规范
Nagle算法:指即使还有应该发送的数据,但如果这部分数据很小,发送方也延迟发送的一种处理情况。即只有满足以下两个条件之一才发送数据:
1. 当所有发送的数据都收到确认响应时
2. 当可以发送最大段长度(MSS)的数据时
优点:可以提高网络利用率
缺点:有一定程度的滞后
在窗口系统或机械控制领域使用TCP时,常常会关闭该算法。
延迟确认
原因:如果接收端每次都立即回复ACK,可能会因为刚收到数据后缓冲区已满而返回较小的窗口。发送方收到ACK后,会在较小的窗口内发送数据,这样会降低网络利用率。因此确认响应被延迟。
详细说明: 1. 直到收到2x最大段长度的数据才会做出确认响应(不同操作系统有所不同,有的收到两个数据包后会返回确认,无论数据大小如何)
2、其他情况下,发送确认响应的最大延迟为0.5s(很多操作系统设置为0.2s左右)
捎带回复
处理完请求后,返回回执时会返回响应。需要启用延迟响应才能获得确认。提高网络利用率并减少计算机处理负载。
其他传输层协议
UDP-Lite:轻量级用户数据报协议是扩展UDP 功能的传输层协议。在UDP中,如果校验和有错误,所有数据包都将被丢弃。有些应用程序不想丢弃所有内容,但关闭校验和功能并不合适,因为错误可能出在UDP头的端口号或IP头的IP地址,这将导致严重的后果。
UDP-Lite 提供与UDP 几乎相同的功能,但校验和计算的范围可以由应用程序自由确定。
SCTP:流控制传输协议。与TCP 一样,它是一种传输层协议,提供与数据到达相关的可靠性检查。主要特点如下:
1. 以消息为单位发送和接收
在TCP 中,接收端不知道发送应用程序确定的消息大小。是的,在SCTP 中。
2.支持多主机
在具有多个网络接口控制器和网卡的主机中,即使可以使用的网卡发生变化,通信仍然可以继续。
3.支持多种数据通讯
在TCP中,需要建立多个连接才能进行通信,而在SCTP中,一个连接就足够了。
4. 可以定义消息的生命周期
已过期的消息将不会重新发送。
SCTP 主要用于在通信应用程序之间发送许多较小的消息时。这些较小的应用消息被称为数据块(Chunk),多个数据块组成一个数据包。
它还具有支持多主机、设置多个IP地址的特点。例如,当笔记本电脑从以太网切换到WLAN时,TCP需要断开并重新连接,而SCTP可以保证通信不中断。
DCCP:数据报拥塞控制协议,是一种辅助UDP的新型传输层协议。
UDP没有拥塞控制机制,因此使用UDP发送大量数据包的应用程序很容易出现问题。对于Internet上的通信,即使使用UDP,也必须考虑拥塞控制。这种机制很难集成到协议中,因此出现了DCCP 等规范。
DCCP的特点如下:
1、传输不可靠
2、面向连接,有建立和断开连接的处理。建立和断开连接的可靠性。
3、能够根据网络拥塞情况进行拥塞控制。两种方法:类似于TCP拥塞控制和TCP友好升级控制。
4. 为了拥塞控制,接收端收到数据包后返回ACK。该确认响应将用于确定是否重传。
UDP首部格式
组成:源端口号、目的端口号、数据包长度和数据校验和。
校验和计算使用UDP 标头和伪标头(源和目标IP 地址+ 协议号)。校验和生成及其原理可以扩展学习。
TCP首部格式
组成:源端口号、目的端口号、序列号、确认响应号、数据偏移、保留、控制位、窗口大小、校验和、紧急指针、选项、填充
控制位和选项内容丰富,可以深入理解。
窗口大小和吞吐量:Tmax=W/RTT
路由协议
静态路由与动态路由
自治系统与路由协议
IGP与EGP
路由算法
距离向量算法
距离向量算法是一种根据距离(成本)和方向确定目标网络或目标主机位置的方法。
获取路由信息需要时间,容易出现路由环路问题。
链路状态算法
链路状态算法是路由器在了解网络整体连接状态的基础上生成路由控制表的方法。在这种方法中,每个路由器必须维护相同的信息才能正确路由。
同步多个路由器上的信息会消耗大量的内存和计算能力。
主要路由协议
RIP、RIP2、OSPF适用区域
BGP适合外部连接
RIP
路由信息协议距离矢量路由协议。
广播路由控制信息、根据距离向量确定路由以及使用子网掩码时的RIP 处理
RIP路由发生变化时的处理:
无限计数问题(1.最长距离不超过16,2.水平分割没有按原来的方式返回信息)
它无法应对网络存在环路的情况,因此提出了毒逆(网络断线时主动发送距离为16的消息)和触发更新(网络断线时立即发送消息,无需等待) 30 秒)。
路由协议2
使用组播,支持子网掩码、路由域、外部路由标志、身份验证密钥
OSPF
开放最短路径优先链路状态路由协议。
BGP
边界网关协议边界网关协议。它是一个路径向量协议。
MPLS
除路由转发之外的一种转发IP 数据包的方式。多协议标签交换多协议标签交换技术
应用协议
远程登录、SSH、FTP
电子邮件
WWW
网络管理
SNMP
其他应用层协议
网络安全
网络安全构成要素
防火墙
IDS入侵检测系统
防病毒/个人防火墙
加密技术基础
对称密码学和公钥密码学
身份认证技术
安全协议
IPsec 和VPN
TLS/SSL 和HTTPS
IEEE802.1X
【深度解析:TCP/IP协议详解笔记】相关文章:
用户评论
endlich mal ein verständlicher Überblick über TCP/IP!
有17位网友表示赞同!
brauche dringend so eine Erklärung, mein Netzwerkstudium ist manchmal echt schwer
有20位网友表示赞同!
das gefällt mir viel besser als trockenes Fachjargon und Gleichungen!
有9位网友表示赞同!
bin froh, dass es visuelle Elemente gibt, das macht den Stoff viel leichter verdaulich
有20位网友表示赞同!
perfekt zum Nachlernen oder für Einsteiger im Bereich Netzwerktechnik
有14位网友表示赞同!
wer hätte gedacht, dass TCP/IP so spannend sein kann?
有8位网友表示赞同!
jetzt werde ich endlich verstehen, wie mein Laptop mit der Weite kommuniziert.
有14位网友表示赞同!
super gemacht, vielen Dank fürs Teilen!
有17位网友表示赞同!
muss unbedingt mir diese Notizen merken, besonders für die wichtigen Konzepte!
有14位网友表示赞同!
sehr hilfreich für Studenten oder alle, die sich tiefer ins Thema einarbeiten wollen
有6位网友表示赞同!
die Grafiken sind wirklich klasse, viel prägnanter als lange Texte!
有8位网友表示赞同!
das wäre super als Cheat Sheet im Studium
有18位网友表示赞同!
könnte man vielleicht auch noch konkrete Beispiele aufzeigen?
有9位网友表示赞同!
vielen Dank für diese übersichtliche Erklärung, jetzt habe ich ein besseres Verständnis .
有6位网友表示赞同!
werde diese Notizen bestimmt weiter empfehlen!
有20位网友表示赞同!
genau die Art von Material, die ich suche!
有18位网友表示赞同!
super zum Lernen und festhalten wichtiger Infos!
有15位网友表示赞同!
vielen Dank für deine Mühe, dass macht alles viel leichter!
有8位网友表示赞同!
nun kann ich endlich mit den Großen im Netzwerkbereich mithalten
有8位网友表示赞同!