从网络上搜集到的计算机网络相关资料,觉得对于一些关键性的概念理解有帮助
一、有了IP地址,为什么还要MAC地址?
技术上可以实现没有mac,只用IP地址,但是整套协议栈都会不一样,路由会变复杂很多。
但出于优化考虑还需要mac地址
1.分层实现
在tcp/ip协议指定前,存在多种局域网标准,网络层只是把这些不同的子网连接起来。
使用MAC地址和IP地址分别表示物理地址和逻辑地址是有好处的,分层可以使得网络层和链路层的协议更灵活地替换,因为网络层不一定要用IP协议,链路层也不一定使用以太网实现。
同时局域网有wifi,以太,4G等各种不同协议,设计复杂的协议让两两互通。因此设计了网络层屏蔽了底层细节实现局域网之间的互通(解耦合)。
2.简化路由寻址策略
IP类似人的住址,MAC类似身份证。
虽然可以使用MAC地址唯一指定收件人,但对于路由器来说,要记住这么多的MAC地址需要大量的内存(256TB),可以简单计算一下。所以要使用IP划分子网。
给每个用户分配一个只由路由器网关决定的IP,查看开头几位就可以决定转发方向。但是MAC地址无法做到这样,因为MAC地址前几位由生产厂家决定。
3.历史原因?
由于历史原因,MAC在先,IP在设计之初IPV4并不是为了唯一表示设备名字的,IPV4的数目并不够用。只是用来解决路由困难的问题,通过把网络划分成子网,减少路由器的计算量。
注意点:在链路层分配ip的时候设备还没有IP,是通过mac地址来通信的。
二、TCP 建立会话为什么要三次握手?
https://blog.youkuaiyun.com/lengxiao1993/article/details/82771768
为了确认对方得到了自己的初始序列号。
两军问题:如果服务器没收到客户端的确认,连接就无法建立。
三、运输层提供的功能
端口号和TCP/UDP
四、应用层:不同应用,http协议等
网络是怎样连接的:
https://book.douban.com/subject/26941639/
网络模拟器软件——Cisco Packet Tracer、华为eNSP、H3C Cloud Lab