计算机网络
物理层
数据链路层
网络层
传输层
应用层
计算机网络基础 - 图1
计算机网络基础 - 图2
概括:
局域网间电脑通信可通过总线(集线器,交换器)直接连接。局域网间电脑的网络号应相同。若局域网内部电脑请求连接外网电脑,则须通过网关/路由器?发送至外网。外网消息发送数据至局域网的路由器时,会寻找对应端口或映射,否则将抛弃外网数据。
Nat会利用一个Ip地址,将局域网内设备组网,每个设备会利用自身特有属性(端口、Id、映射等)在此IP内形成独有标记,自身请求和外网传送的数据可根据独有标记相互传送。

物理层

曼彻斯特编码:低——高为0 高——低为1
差分曼彻斯特编码:bit中间有信号跳变,bit之间也有信号跳变为0。bit中间有信号跳变,bit之间没有信号跳变为1

数据链路层

数据链路层使用的信道主要有一下两种类型:
l 点对点信道:一对一
l 广播信道:一对多(集线器),必须使用专用的共享信道协议来协调这些主机的数据发送
链路:一条点到点的物理线段,中间没有任何其他节点
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路
现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件,一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传送的是帧。
帧由网络层的IP数据报加上帧头和帧尾构成。

两种情况下的数据链路层:
1. 使用点对点信道的数据链路层(PPP协议)
2. 使用广播信道的数据链路层(载波监听 多点接入/碰撞检测的机制运行)

局域网

特点:网络为一个单位所有,且地理范围和站点数目均有限,具有广播功能
IP号具有同一网络号的设备可组成局域网,设备间通过ARP协议连接。硬件可由集线器或交换机实现。

以太网(局域网):

最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的链接方法及简单又可靠,因为总线上没有源器件
举例:一条总线上的计算机A向计算机B发送是数据,实际上所有计算机都会接受到数据,但只有计算机B会处理数据(MAC地址)(可通过抓包工具获取数据)
优点:不用划分信道
缺点:同一时间只能有一条信道使用(即同时只能有两台计算机之间互传数据)

以太网使用CSMA/CD(载波监听 多点接入/碰撞检测的简写)协议

载波监听:

每一个站在发送数据之前先利用电子技术检测总线上是否有其他计算机发送的数据信号,如果有,则暂时不发送数据,防止发生碰撞

多点接入:

许多计算机以多点接入的方式连接在一根总线上

碰撞检测:

计算机边发送数据边检测信道上额信号电压大小,当几个站同时在总线上发送数据时,总线上的信号电压摆幅增大,从而可以检测到,发生碰撞时,总线上传输的信号严重失真且无法恢复,此时应停止发送避免浪费网路资源
使用CSMA/CD协议额以太网不能进行全双工通信只能进行半双工通信

拓扑:

发展:粗同轴电缆——细同轴电缆——(无屏蔽)双绞线 (都是由于价格问题才改变)
每个站需要使用两对双绞线,分别用于发送和接收
此时拓扑方式就从传统的总线式变成星形(此时有集线器(hub),但现在使用的是交换机)

集线器:

一台计算机发送数据,所有的计算机都可以收到,集线器是使用电子器件来模拟实际电缆线的工作,此时的系统实质还是总线网,仍然使用CSMA/CD协议,集线器工作在物理层

MAC层:

每个网卡有一个唯一的MAC地址(48位二进制,前24位代表厂家,后24位厂家指定)
MAC地址==硬件地址==物理地址==适配器地址==适配器标识符EUI-48
可以人工指定一个MAC地址,即不使用网卡的MAC地址(MAC地址冲突不会报错,也不通)
适配器(网卡)从网络上每接收到一个MAC帧就首先用硬件检查Mac帧中的MAC地址,从而决定是否处理。

以太网:曼彻斯特编码

(只要有开始标志就可以,当后面不再变化时则表示帧结束)
无效的MAC帧:丢掉,以太网不负责重传,应用层负责重传丢弃的帧

交换机

相比集线器,内部有芯片,会处理ip和mac地址的映射,让源信号直接指向目标。
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。

交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。

交换机被广泛应用于二层网络交换,俗称“二层交换机”。

网络层

网际协议IP

网络互联的设备:中间设备又称中间系统或中继系统:
物理层中继系统:转发器(集线器)(用于信号放大)
数据链路层中继系统:网桥或桥接器(交换机)
网络层中继系统:路由器
网络层以上的中继系统:网关(现在网关指的是路由器的接口)

网络的4个协议:

网际协议IP:其他三个协议都依赖于IP协议
地址解析协议ARP:负责解析对方网卡,计算机,路由器的MAC地址
网际控制报文协议ICMP:报告网络故障(比如超时)
网际组管理协议IGMP

计算机网络基础 - 图3
计算机网络基础 - 图4
计算机网络基础 - 图5
特殊的几个地址:
127.0.0.1 本地环回地址
169.254.0.0 计算机没有手动分配地址时自动分配的地址,无法访问网络,需要一个正确的地址
10.0.0.0 保留的A类私网地址,即互联网上没有分配给服务器来用,留给企业或政府或学校用(不同的学校都是用10.0.0.0网段,因为不同的学校之间没打算通信,所以即使地址有可能重叠也没关系)
172.16.0.0——172.31.0.0保留的B类私网地址
192.168.0.0——192.168.255.0保留的C类私网地址
私网地址外部无法连接

子网掩码的作用:

将IP地址划分成网络地址和主机地址两部分,必须结合IP地址一起使用(将子网掩码与其IP地址进行与运算,从而可以得到该计算机所处的网段),不能单独存在

网关

要向不同网段的计算机传送数据——将数据包给网关
也可以更改子网掩码,将原本两个不同的网段,通过和子网掩码进行与运算后得到的结果相同,此时传数据则可以直接传送而不用传给网关,因此子网掩码写错会造成网络故障,必须写正确
网关与本机需要在同一局域网内,即ip和子网掩码相与的结果和子网掩码和默认网关相与的结果相同。

IP地址分类

IP地址是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。通常我们使用点式十进制来表示,如192.168.0.5等等。
每个IP地址又可分为两部分。
网络号部分和主机号部分:
l 网络号表示其所属的网络段编号
l 主机号则表示该网段中该主机的地址编号
按照网络规模的大小,IP地址可以分为A、B、C、D、E五类。
网络号.占位数.主机号.占位数
A类地址:以0开头,第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头,第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头,第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

1)以下是留用的内部私有地址,Internet上没使用的地址
A类 10.0.0.0—10.255.255.255
B类 172.16.0.0—172.31.255.255
C类 192.168.0.0—192.168.255.255
2)IP地址与子网掩码相与得到网络号
3)主机号,全为0的是网络号(例如:192.168.2.0),主机号全为1的为广播地址(192.168.2.255)

子网划分(意义:充分利用IP地址):

主机地址不全为1或全为0
全0表示网段
全1则是广播,网段中所有计算机都能收到

子网掩码


计算机网络基础 - 图6
计算机网络基础 - 图7
路由器的地址就是此网段的网关,网关一般使用的是本网段的第一个地址
计算机网络基础 - 图8
计算机网络基础 - 图9

ARP协议

动态路由选择协议都属于IP协议
ARP协议(靠广播,所以这一步很不安全)用于将IP地址解析成MAC地址
RARP协议就是请求IP地址的过程

ARP:address resolution protocol : 地址解析协议
基于一个IP地址,解析出其对应的MAC地址。
-作用:
基于一个IP地址,解析出其对应的MAC地址,
为了实现数据的完整封装。
-原理:
1、源主机,以广播的方式发送, ARP 请求包;
2、目标主机,接收ARP请求包以后,首先检查2层头部的目标MAC,是否与自己相同或者是否为广播地址;如果是,则分析2层层头部后面的 ARP 报文:如果其中的“目标IP”与自己相同,则首先将发送方的IP与MAC的对应关系,记录下来,放在自己本地的 ARP表中。
3、然后目标主机,以单播的方式,构建并返回ARP响应报文;
4、源主机,接收ARP响应报文以后,进行与步骤2相同的数据处理,在本地形成 ARP 表。

arp地址解析协议

即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址

3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

注意:广播(255.255.255.255)发送ARP请求,单播发送ARP响应。

路由

数据路由:路由器在不同网段转发数据包
路由:数据包不同网段通信
沿途的路由器必须知道到目标网路(来和回) 下一跳给哪个接口

路由器

路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。

路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。
路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。交换机是根据MAC地址转发数据帧,而路由器是根据IP地址来转发数据报。IP地址决定最终数据要到达某一台主机,而MAC地址是决定下一跳将要交给哪一台设备(一般是交换机或者路由器),IP地址是软件实现的,可以描述主机所在的网络,MAC地址是硬件实现的,每一个网卡在出厂时都会将全世界唯一的MAC地址固化在ROM中,因此MAC不可改,IP可改

案例

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192. 168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

计算机网络基础 - 图10
















、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

应用层

DHCP

使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。

ICMP

它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。用于传输出错报告控制信息。
当TTL超时,路由器会发送ICMP信息。
ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送
原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。
我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。

传输层

UDP

UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

DNS

域名系统,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

端口

物理端口是用于连接物理设备之间的接口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
逻辑端口是指逻辑意义上用于区分服务的端口,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。如TCP/IP协议中的服务端口,通过不同的逻辑端口来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。

NAT

这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。

TCP

计算机网络基础 - 图11
计算机网络基础 - 图12
计算机网络基础 - 图13
三次握手:
请求端发送握手请求SYN(seq=0)
服务器应答ACK,发送握手请求SYN(ack=1,seq=0)
请求端应答ACK(ack=1,seq=1)

数据传送:
请求端发送PSH ACK(ack=1,seq=1)
服务器应答ACK(ack=1+length,seq=1)
请求端发送PSH ACK(ack=1,seq=1+length)
服务器应答ACK(ack=1+length+length,seq=1)

四次挥手:
假定先发送挥手的是客户端
客户端发送断开请求FIN ACK(ack是回应上次传输数据的)(seq=a, ack=b)
服务器回应ACK (ack=a+1, seq=b)
此时服务器还有数据传输,,传输完成后:
服务器发送断开连接请求FIN ACK(ack是回应上次传输数据的)(ack=a+1, seq=b)
客户端回应ACK(ack=b+1, seq=a+1)


滑动窗口



拥塞控制
和式增加,积式减少


计算机网络基础 - 图14

NTP

网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。