【计算机网络】网络层和数据链路层

文章目录

IP协议

TCP有将数据 可靠、高效 发给对方的 策略 ,而IP具有发送的能力,即将数据从A主机送到B主机的 能力

用户要的是100%的概率送到!

IP地址 = 目标网络 + 目标主机

IP协议报头

4位首部长度:同TCP(基本单位是4字节)

8位协议:表征有效载荷是什么报文(向哪个协议交付)

8位服务类型:不同种类的传送策略 (最小延迟,最大吞吐量,最高可靠性,最小成本),四种是互斥的,只能选择一个

16位总长度(字节数):报头和有效载荷的有效分离。

8位生存时间:该报文在转发过程中,最多经历的路由器的次数

源IP和目的IP,而在TCP报文里则有源端口和目的端口,这样即标识了两个进程。

网段划分

挨个查找------一次只能排除一个人,如果能一次排除其他大部分人,查找效率才能大大提高,因此我们必须进行子网划分

国内的网络是被国内运营商顶层涉及的,而国际的网络则是各个国际商量设计。

分类划分法

A类网络第一位是0,其他网络是1

B类网络第一位是1,第二位是0,其他网络是1

依次类推...

CIDR 方案

引入子网掩码来区分网络号和主机号。使用这样的方式能更大程度的利用IP地址。

路由

通过查询路由表,决定路径选择。

NAT网络地址转换技术

NAT技术可以分为去和回两个过程。

去:不断替换IP报文中源IP地址,直到到了目标网络的入口路由器,再通过ARP协议通过IP地址获得硬件地址,实现局域网内的数据发送。

回:

回的时候依靠一张转换表,路由器会维护这样一张转换表,当服务器要给客户端发送消息时,会按照这个表的转换关系来替换。由于NAT技术的存在,公网无法直接访问内网(没有映射关系)。

NAT转化表:

完整转化过程:

IP报文的另外三个参数

16位标识:通过十六位标识来区分ip报文

3位标志:

第一位保留,

第二位置为1表示禁止分片,为0表示允许分片;

第三位表示更多分片,1表示还有报文,0表示没有报文了

13位片偏移:

1、由于IP报文携带了源IP地址,因此IP层具有区分不同客户端的能力

2、如何知道是否分片

  • 只要片偏移不是0,提取16位标识,这个标识一定分片了
  • 如果片偏移是0,看更多分片,为1则分片了,为0则没有分片了

开始报文:片偏移为0 且 更多分片为1

中间报文:偏移量>0 且 更多分片为1

结尾报文:片偏移不为0 且 更多分片为0

独立报文:片偏移为 0 且 更多分片为0

3、如何保证分片收全

头尾丢失我们知道

自身偏移 + 自身大小 = 下一分片的偏移量

4、怎么组装在一起

按照升序遍历,同问题3

5、如何保证组合在一起的报文是对的

16位校验和。

网络中,分片应尽量成为少数情况,应尽量减少这样的情况,如果其中有一片丢失,TCP收不到应答,就会一整个重新发送。也就是说过多的分片,容易增加丢包率

所以,TCP在发送数据时,也会尽量规避发送过大的报文!这也就是为什么发送缓冲区不直接发一大坨数据过去,而是有一个滑动窗口存在。

MSS(最大段尺寸):1500-20-20 = 1460;

mac帧

路由是让我们找到正确的路径,比如为什么要从路由F到路由G,那F怎么到G的,就是数据链路层考虑的问题了,即要解决从一个子网内,如何发送数据的问题。

之前我们提到了,IP层提供了将数据从A主机跨网络送到B主机的能力,其实这个能力是由mac帧和IP层共同实现的。

一张网卡有一个mac地址,这个地址全球唯一。

局域网通信原理:

网卡中,可以设置为混杂模式,不对报文的目标MAC地址进行认证,直接向自己上层交付

在以太局域网中,任何时刻,只能由一台主机给另一台主机发送数据帧,否则的可能会发生数据碰撞的问题,会进行碰撞检测,和碰撞避免。这里的数据也是临界资源。令牌环网本质是锁和临界资源的关系。

黑掉局域网:向局域网不断发送垃圾数据,让 其不断碰撞。

重传在数据链路层也存在。

mac帧报文:

目的地址为全F的时候,为广播所有的局域网主机。

ARP协议

ARP协议工作在链路层,ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.

  • 源mac地址、目的mac地址在以太网首部和ARP请求中各出现一次,对于链路层是以太网的情况来说是多余的,其他类型网络可能是必须的
  • 硬件类型指链路层网络类型,1为以太网
  • 协议类型指要转换的地址类型,0x0800为IP地址
  • 硬件地址长度对以太网为6字节
  • 协议地址长度对于ip地址为4字节
  • op字段为1表示ARP请求,op为2表示ARP应答

任何主机收到ARP都会优先看op,

交换机

ICMP

ICMP隶属于网络层,他与ip的关系类似于arp和mac的关系,ICMP协议是用来验证网络是否畅通的;IP不保证可靠性,但ICMP提供了这个功能。

ping命令使用哪个端口号?ping命令基于ICMP,不存在端口号的概念

代理服务器

正向代理:

反向代理:

相关推荐
两个人的幸福10 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo12 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack12 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820713 天前
PHP 扩展——从入门到理解
php
鹏仔先生14 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
网络研究院14 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智14 天前
ARP代理--工作原理
运维·网络·arp·arp代理
云水一下14 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
treesforest14 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_14 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化