计算机网络学习笔记3:网络层

网络层几种主要的协议以及层次关系如下:


网络层的协议栈

1  网络层提供的服务

负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发;不管丢失重传;不管数据包到达的顺序。实现这些功能的设备是路由器。

2  计算机通信之前做了哪些准备工作?

应用层:应用程序准备要传输的文件;
传输层:将文件分段,并编号;
网络层:添加IP数据包首部,包括目标IP地址和源IP地址等;
数据链路层:添加帧头帧尾,包括下一跳MAC地址和源MAC地址等。发送方先使用自己的子网掩码判断自己在哪个网段;再使用自己的子网掩码判断目标地址在哪个网段。如果是同一个网段就直接用ARP协议广播解析目标IP地址的MAC地址。如果不是同一个网段就用ARP协议广播解析网关的MAC地址,然后把数据包给网关。
物理层:透明地传输比特流。

问:集线器、交换机、路由器能否中病毒?
答:不能。病毒是应用层程序。病毒在网上传输时需要进行分段。分段后的病毒不具有完整病毒功能。

3  ARP协议

3.1  原理

不管网络层使用的是什么协议,在实际网络的数据链路层上传送数据帧时,最终还是必须使用硬件地址。
每一个主机都设有一个ARP高速缓存,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。(查看ARP映射表命令:arp -a
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。若没有,则主机A在该局域网上(只能在本网段的局域网内广播)发送ARP广播请求B的MAC地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器(网关)的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。

3.2  ARP欺骗

网络执法官:告知本网段正在进行ARP请求的计算机一个不存在的MAC地址;或告知错误的网关MAC地址,使之无法正常通信。
P2P终结者:把自己的MAC地址,告知本网段正在对网关进行ARP请求的计算机,使自己成为网关。本网段其他所有计算机访问外网的流量都经过本计算机。可以控制本网段计算机的流量。
如果一台计算机解析到了错误的网关的MAC地址,那么它无法访问外网。
如何防止网络执法官的欺骗?
只需在通信的两台计算机上互相绑定对方正确的MAC地址即可。
查看该计算机存储的MAC地址命令:arp -a
绑定、更改该计算机存储的MAC地址命令:arp -s 192.168.80.1 00-0C-29-53-48-C3

4  ICMP协议

为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol),为了使主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP不是高层协议,而是IP层的协议。
ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
报文格式以及种类:


ICMP报文的种类有两种,即差错报告报文和询问报文。
ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有关。
差错报告报文有五种:终点不可达、源点抑制(Source quench)、时间超过、参数问题、改变路由(重定向)(Redirect)。
询问报文有两种:回送请求和回答报文、时间戳请求和回答报文。

ICMP数据包举例

Ping命令诊断网络故障
典型的使用ICMP协议的就是ping命令。Ping命令可以查看传输延时和生存时间TTL。TTL的值每过一个路由器就减1,当减至0时数据包在网上丢弃(避免数据包在网上陷入环路循环)。根据TTL值可以估计对方是什么系统。一般,Linux是64,Windows是128,Unix是255。
如果上不了网,可以先ping一下网关看看通不通;如果通,再ping一下网上常用DNS服务器(如8.8.8.8)看看通不通。
常用ping命令:
ping 10.7.1.53 -t 一直ping对方,ctrl+z取消
ping -l 200 10.7.1.53ping 10.7.1.53 -l 200 用200字节的大数据包ping对方
跟踪数据包途径的路由器,查看沿途路由器的IP:
ping 8.8.8.8 -i 1 查看第一个路由器;
ping 8.8.8.8 -i 2 查看第二个路由器;
……
也可以用pathping命令,一条命令就能跟踪数据包。
Ping命令返回的信息以及原因
目标主机不可到达:计算机没设网关,不知道到其他网段怎么走;计算机有网关,但是沿途有一个路由器路由表缺失,不知道到达目标网段怎么走,该路由器返还给发送的计算机一个不可达的回应。
请求超时:数据包有去无回;网络拥堵。
Pathping命令与tracert命令
使用ping能够判断网络通还是不通,比如请求超时,你就不能判断什么位置出现的网络故障造成的请求超时。使用pathping命令能跟踪数据包的路径,能够查出故障点,并且能够计算路由器转发丢包率和链路丢包率以及延迟,据此能够判断出网络拥塞情况。 tracert命令只能跟踪沿途路由器,不计算丢包率。
Windows上跟踪数据包路径的命令 tracert 10.7.1.53
在路由器上跟踪数据包路径的命令 traceroute 12.0.0.3

5  IGMP协议

IP多播的概念
多播=组播。
通信的三种形式:点对点、广播、多播。
点对点:一发一收,一对一通信。
广播:一对多。一个网段中一台计算机发信息,目的地址主机位全是1。
多播:一对多。流媒体服务器用一个多播地址只需发一份文件,接收的多台计算机只要绑定同一个多播地址就能一起收到该文件。(类比收音机调频道)。
IGMP协议:


IGMP协议配置在路由器接口上,功能是频繁扫描所连接的网段里有几个计算机绑定多播地址。有几个的地址就要求上一个路由器复制几份文件,如果一个也没有,就要求上一个路由器不要再复制并传送文件了。
多播地址:
多播使用组地址:IP使用D类地址。多播地址只能用于目的地址,而不能用于源地址。
动态的组成员;使用硬件进行多播。

6  IP数据报格式


版本:标识协议是IPV4还是IPV6版本。
首部长度:标明数据包首部一共有多长,单位4B。
区分服务:标明数据包紧急情况和优先权。
总长度:标明数据包总长度,单位B。网络层允许的最大数据包的大小是65535B,而数据链路层的数据最大允许1500B。因此要对数据包分片,分片后数据包的数据最大不超过1480字节。
标识:每个完整的数据包有自己独一的标识号。分片的几个包的标识号一样,表示这几个分片是一个数据包。
标志:占3位,目前只有两位有意义。标志字段的最低位是MF。MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是 DF。只有当 DF=0时才允许分片。
片偏移:表示本分片在原数据包中的位置,单位8B。例如:



生存时间TTL:见上文有关ping命令的部分。
协议:指出该将数据包交给上层的哪个协议。一般的,ICMP的协议号是1,IGMP协议号是2,TCP是6,UDP是17,IPv6是41,OSPF是89。
首部检验和:只检验数据报的首部,不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。
下图是我随便抓的一个包:


7  IP协议

网络畅通的条件:
数据包必须能有去有回。有时网通不了,数据包也有可能已经到达对方了,只是对方没配网关,数据包只能去而回不来。保持网络畅通,在IP地址配置没问题的基础上,必须保证通信双方的网关没问题、沿途所有路由器的路由表没问题(能去又能回)。
静态路由:需要管理员告诉路由器所有没有直连的网络下一跳给谁。静态路由的缺点是适合于小规模网络,不能够自动调整路由。
动态路由:常见有RIP协议和OSPF协议。路由器自学习,自动形成路由表。当线路出现故障和新情况时能自动更新路由表。
RIP周期性广播路由表,告诉相邻路由器自己连接了哪些网段。以“跳数”为判断最佳路径的标准。30秒更新一下路由信息,最大跳数15跳。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348