网络编程介绍,C/S 架构,网络通讯协议,osi七层 (4)

网络编程介绍,C/S 架构,网络通讯协议,osi七层

1.FF:FF:FF:FF:FF:FF是一个特殊的MAC地址 交换机在看到这个地址时会将这个数据向网内所有主机进行广播

2.192.168.1.102 收到ARP请求后 回复自己的MAC给 源MAC主机

3.发送方(192.168.1.101)收到回复后,会将对方的ip的MAC地址映射关系存储到缓存中,以便下次使用

ps:arp -a 可以查看ARP缓存列表

网络编程介绍,C/S 架构,网络通讯协议,osi七层

确定对方MAC地址后的数据帧内容:

网络编程介绍,C/S 架构,网络通讯协议,osi七层

案例2:主机192.168.1.101访问192.168.111.101

交换机发现目标IP不在当前子网中,

1.交换机发起ARP请求,将目标IP设置为对方的网关IP,默认情况下,网关的主机号都为1; 所以接收方(192.168.111.101)的网关为192.168.111.1

发送方交换机发起的ARP数据帧:

网络编程介绍,C/S 架构,网络通讯协议,osi七层

2.对方网关收到请求后发现ip是自己的ip则回复ARP请求,将其MAC地址告知发送方交换机,

3.发送方交换机将,对方的网关与的MAC地址与IP存储到自己的ARP缓存中,

4.告知发送方(192.168.1.101)对方网关的MAC地址,发送方同样将对方网关MAC与目标IP映射关系存储到,本机ARP缓存中

至此ARP请求结束可以开始传输数据

后续确定了MAC地址后发送的数据帧内容:

网络编程介绍,C/S 架构,网络通讯协议,osi七层

总结:ARP通过广播的方式来获取MAC地址, 不在同一子网时 ARP得到的时对方网关的MAC地址,数据到达对方网关后,由网关根据IP交给对应的主机,当然对方网关获取主机MAC也是通过ARP

ps:路由器 交换机都可以称之为网关!

     

4.传输层(重点)*****

传输层的由来:

通过物理层简历链接通道

通过数据链路层的MAC,可以定位到某个局域网中的某台主机,

通过网络层的IP地址,子网掩码,可以定位到全球范围某一局域网下的某台主机

那么问题来了:

一台计算机上是不可能只运行一个应用程序的,比如同时登陆qq和微信,那接收到的数据到底是交给微信还是qq呢?

答案就是:端口号,端口是需要联网的应用程序与网卡关联的编号

传输层功能:建立端口到端口的通信

补充:端口范围0-65535,0-1023为系统占用端口

TCP与UDP是工作在传输层的协议: TCP协议

可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

网络编程介绍,C/S 架构,网络通讯协议,osi七层

TCP之所以可靠,是因为在传输数据前需要三次握手确认建立链接

三次握手:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwspgp.html