1.协议模型
2.模型概述
我们先考虑一下当你办公室使用局域网打CS,你double kill的消息传递给其他小伙伴会遇到哪些阻碍?
a.在同一个网络下有许多电脑,信号是如何通过网线找到和你开黑电脑的?
答案是链路层的以太网协议,以太网规定,网线里一组电信号构成一个数据包,包含标头(Head)和数据(Data)。其中标头包含发送者、接受者、数据类型等。
b.数据包中发送者与接受者在电脑中是如何标识呢?
答案是每个设备都有包含独一无二MAC地址的网卡(如00-B0-D0-86-AA-F7),网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
c.有了MAC地址,系统怎样才能把数据包准确送到接收方呢?
答案是群发,你double kill的数据包发给整个区域的电脑,其他电脑和你数据包接收者MAC地址进行匹配,如果相同就接收这个包,这样通过广播的方式,"链接层"就可以在多台计算机之间传送数据了。
后来你开始联网又打CF了,又拿到3杀,可你三杀的消息是如何传递不在同一局域网的队友呢?
a.如果继续用以太网协议发送协议可不可?
理论上可以,但如果在互联网环境中采用广播方式发送数据包,不仅效率极低,更会引起灾难!所以我们将网络分为不同的子网络,子网络内用以太网协议,子网络之间通信则需要网络层协议-IP协议。网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。
b.什么是IP协议?
规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255。他前24位代表网络,后一部分后8位代表主机。IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络(判断方式是子网掩码)。址。
c.那如果他在网吧,虽然我们知道它的ip地址,我们无法获知它的MAC地址,那又怎么将你三杀消息告知你队友呢?
第一种不在子网络内只能把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。
第二种如果你们刚好在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。
有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立联系,可是你的队友有可能在听着音乐打着CF,怎么保证你三杀消息不是传递给他的音乐播放器呢?
答案就是需要传输层。传输层"的功能,就是建立"端口到端口"的通信,及确定程序端口。只要确定主机和端口,我们就能实现程序之间的交流。因此主机+端口,叫做"套接字"(socket)。有了它,就可以进行网络应用程序开发了。
d.传输层协议-UDP与TCP
它们就是加入端口信息的以太包。而TCP与UDP的主要区别就是,TCP可以确定程序是否接受到包(TCP三次握手http://www.jianshu.com/p/9968b16b607e)
费尽周折,我们通过IP地址,MAC地址确定了主机,通过端口确定CF的应用程序,你的队友终于知道你三杀的消息并由衷的鄙视了你。。。
那么我们想一下现在以太数据包现在是什么样?
网友评论