计算机网络分层
-
物理层:
利用传输介质为通信的网络结点之间建立、管理和释放物理连接;实现比特流的透明传输,位数据链路层提供数据传输服务;物理层的数据传输单元是比特。
-
数据链路层:
在物理层提供的服务基础上,数据链路层在通信实体间简历数据链路连接;传输以"帧"为单位的数据包;采用差错控制与流量控制方法,使有差错的物理线路编程无差错的数据链路。
作用:
1. 封装成帧:
为网络层传下来的ip数据报
添加首部和尾部,封装成帧
2. 透明传输:
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符,因为用户对这个转义是察觉不到的,所以叫透明传输
3. 差错检测:
传输过程中可能会出现差错(比特差错),为保证可靠性,在数据链路层广泛使用了循环冗余检验CRC
的检错技术
MAC地址:
MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址;是链路层和物理层
上使用的地址;
-
网络层:
通过路由选择算法为分组通过通信子网选择最适当的路径;为数据在结点之间传输创建逻辑链路。
作用:分组转发,路由选择,尽力而为的发送IP数据报,将分组从源主机移动到目的主机
- 分组转发
转发就是路由器根据路由/转发表将用户的IP数据报从合适的端口转发出去。 - 路由选择
按照分布式算法根据从各相邻的路由器得到关于网络拓扑的变化情况,动态地改变所选择地路由。路由表是根据路由选择算法得出的。
在路由表中,对每一条路由,包含(目的网络地址,下一跳地址)
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。在实际网络的链路上传送数据帧时,最终使用硬件地址。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
ARP协议:将ip地址解析为mac地址
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址。查找ARP 高速缓存中有没有该 IP 地址到 MAC 地址的映射
(1)如果有,查找出对应的MAC地址,并将该硬件地址写入MAC帧,就可以通过局域网将该MAC帧发送到此硬件地址。
(2)如果没有,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会通过单播的方式发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
RARP协议:将mac地址转为ip地址
IP协议:
ipv6特点:
- 32比特的IP地址空间即将耗尽,为了应对这种对大IP地址空间的需求,开发的一种新的IP协议,IPv6
- 不允许在中间路由器分片和组装,只能在发送方路由器和接受方路由器组装和分片
- 去除校验和,传输层会校验,网络层在ipv4也做了校验有些多余,网络层更应该关注分组的快速发送
ICMP因特网控制报文协议
:
它作为IP数据报的数据,加上数据报的首部,封装在 IP 数据报中,不属于高层协议,用于主机和路由之间传递控制信息,比如网络通不通,主机可不可达等,使用最多的就是ping命令;
ICMP报文一般分为两种:差错检测报文,询问报文
Ping命令:
向目的站点发送ICMP报文,用于测试目的站是否可达及了解其有关状态
DHCP 动态主机设置协议:(Dynamic Host Configuration Protocol)
DHCP提供即插即用连网机制,允许一台计算机加入新的网络和获取IP地址
而不用手工参与。DHCP基于UDP传输数据
DHCP工作过程:
- 需要新ip地址的主机像DHCP服务器发送
DHCPDISCOVER报文
- DHCP服务器首先在数据库中寻找当前主机的配置信息,如果有,就返回数据库中的配置信息,如果没有,则在
ip 地址池
中分配一个ip地址返回,返回的报文为DHCPOFFER报文
- DHCP客户 会检查得到的IP信息是否完整并发送广播
DHCPREQUEST
通知DHCP服务器已获得IP地址 - DHCP服务端发送广播
DHCPACK
确认客户的请求,表示分配成功
-
传输层(承上(资源子网)启下(通信子网))
向用户提供可靠端到端(end to end)通信;处理数据包错误、数据包次序以及其他一些关键传输问题;屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。 -
会话层:
建立及管理会话(数据交换)。负责维护两个结点之间的传输链接,以便确保点到点传输不终端。 -
表示层:
用于处理在两个通信系统中交换信息的表示方式,包括数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。 -
应用层:
为应用程序提供了网络服务;应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步。建立传输错误纠正与保证数据完整性的控制机制。
DNS域名解析:
域名服务器:
域名解析过程:
主机向本地域名服务器的查询一般采用递归查询
。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根/顶级/权威域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个域名服务器进行查询,然后让本地域名服务器进行后续查询。
DNS为什么使用UDP?
- UDP的效率比TCP高,UDP不需要额外发送握手挥手的数据包
端口号:
一个终端用端口号来标识进程,允许一个IP主机有2的16次方65535个不同的端口;
- 0~1023:分配给系统的端口号;不可以乱用,常见的端口号有:
常用协议 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
FTP控制 | 21 |
FTP传输 | 20 |
DNS | 53 |
Socket中可以使用1024~65535的端口号
TCPIP协议中的数据包传递形式
MAC地址和IP地址对比
mac地址作用?
现如今比较流行的接入Internet的组网方式:将主机通过局域网连接在一起,再通过交换机和Internet相连;这样就出现了用户标识的安全问题,因为ip地址是动态的,任何人都可以修改,不能用于标记用户,而mac地址是固化在网卡里的,局域网采用了用MAC地址来标识具体用户;
ip地址作用?
- IP地址的分配是根据网络的拓朴结构,这种方案有利于高效的路由选择;
- 存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。
数据在网络中的传输是结合了IP地址和MAC地址完成的:
描述一次网络请求的流程/浏览器访问一个url网址所经历的过程?
- 域名解析
- TCP连接
- 发送HTTP请求报文
- 然后经过传输层,网络层,数据链路层的层层包装,传输,再层层拆除交给服务器的应用层
- 服务器发出HTTP响应报文
- 断开TCP连接