一、计算机网络常用设备
1、物理层
网线、集线器、无线信号(wifi、2345G等)、同轴电缆等。
2、数据链路层
交换机、网卡等
3、网络层
路由器
注意:路由器的网卡属于数据链路层,其携带的路由软件算法是网络层
4、应用层——包括传输层、会话层、表示层和应用层
服务器、pc、手机、嵌入式设备或者其它集成了tcp/ip协议栈的设备。
注意:这些设备的网卡是数据链路层,而配置设备的ip地址、子网掩码、网关等信息和发送信息时用这些配置信息计算先将信息发送给局域网内设备还是发送给网关这样的算法为网络层算法(如ip算法)。在网络层算法之上的算法才是应用层,如tcp协议和udp协议是传输层算法、建立会话连接的会话层、编码为图片或者视频或者文字等的表示层,使用下面这些层传输信息的应用层。
二、计算机网络中各层的作用
1、物理层
传输信号的载体,这一层规范了载体的一些规范。
2、数据链路层
将数据包加工为数据帧或解析数据帧并转发到下一个mac地址的设备上。
(1)发送信息的设备
会将一个源MAC地址为本机网卡物理地址,目的MAC地址为目标主机网卡物理地址的数据帧发送给交换机;
(2)交换机
交换机收到此数据帧后,
首先将数据帧中的源MAC地址和对应的输入端口0
记录到交换机维护的MAC地址表中;
然后交换机会检查自己的MAC地址表中
是否有数据帧中的目的MAC地址的信息,
如果有,则从MAC地址表中记录的对应端口发送出去,
如果没有,则会将此数据帧从非接收端口的所有端口发送出去,
这里仅从端口1发出;
这时,局域网的所有主机(通过交换机相连的全部主机)
都会收到此数据帧,
但是只有主机B收到此数据帧时会响应这个广播帧,
并回应一个数据帧
(这个回应由什么机制确定的,需要再查资料确定一下~TCP的ACK包?),
此数据帧中包括主机B网络设备的MAC地址;
当交换机收到主机B回应的数据帧后,
也会记录数据帧中的源MAC地址,
即主机B网络设备的MAC地址,
这时,再当主机A和主机B相互通信时,
交换机就根据MAC地址表中的记录,实现单播了,
一趟转发流程实际交换机就“学习”到了两个转发表条目。
(3)接收信息的设备
接收数据帧并解析数据帧,去掉数据帧中的mac地址传递给网络层
3、网络层
1、将数据加工为数据包并将数据包传递给数据链路层或解析数据包后将数据传递给传输层。
2、转发数据包到下一个路由设备
4、传输层
1、保证数据的可靠传输或不可靠传输,如tcp协议为可靠传输、udp协议为不可靠传输。
2、将大量数据切成小块数据编号然后发送或者接收的编好号的小块数据从新组织成完整数据。
5、会话层
保证传递数据的会话,如访问网站的session会话、断点续传的会话等
6、表示层
保证传输数据的表现形式,如是jpg的图片还是MP4的视频还是文字等
7、应用层
网络传输的应用软件
8、很多将传输层、会话层、表示层和应用层合并称为应用层。
三、socket理解
socket可以简单的理解为包装了tcp、udp协议等传输层协议的接口程序包。我们调用这个数据包就可以编写网络程序了。