读懂网络通信技术原理 网络通信技术( 三 )


读懂网络通信技术原理 网络通信技术

文章插图


6、Socket:我们知道两个过程如果须要进行通信最根本的一个前提能能够唯一的标示一个过程,在本地过程通信中我们可以应用PID来唯一标示一个过程,但PID只在本地唯一,网络中的两个过程PID冲突几率很大,这时候我们须要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协定和端口号可以唯一标示主机的一个过程,这样我们可以应用ip地址+协定+端口号唯一标示网络中的一个过程 。
能够唯一标示网络中的过程后,它们就可以应用socket进行通讯了,什么是socket呢?我们经常把socket翻译为套接字,socket是在运用层和传输层之间的一个抽象层,它把TCP/IP层庞杂的操作抽象为几个简略的接口供给用层调用已实现过程在网络中通讯 。
读懂网络通信技术原理 网络通信技术

文章插图


socket来源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自保护一个"文件",在树立衔接打开后,可以向自己文件写入内容资源网供对方读取或者读取对方内容,通信停止时关闭文件 。
三、网络通讯实现
每台主机实现网络通讯的根本四要素:
本机的IP地址
子网掩码
网关的IP地址
DNS的IP地址
获取这四要素分两种方法:
1.静态获取
即手动配置
2.动态获取
通过dhcp获取
(1)最前面的"以太网标头",设置发出方(本机)的MAC地址和吸收方(DHCP服务器)的MAC地址 。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF 。
(2)后面的"IP标头",设置发出方的IP地址和吸收方的IP地址 。这时,对于这两者,本机都不知道 。于是,发出方的IP地址就设为0.0.0.0,吸收方的IP地址设为255.255.255.255 。
(3)最后的"UDP标头",设置发出方的端口和吸收方的端口 。这一部分是DHCP协定规定好的,发出方是68端口,吸收方是67端口 。
这个数据包结构完成后,就可以发出了 。以太网是广播发送,同一个子网络的每台盘算机都收到了这个包 。因为吸收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的盘算机,还必需剖析这个包的IP地址,能力肯定是不是发给自己的 。当看到发出方IP地址是0.0.0.0,吸收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他盘算机就可以丢弃这个包 。
接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包 。这个响应包的构造也是相似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(吸收方),UDP标头的端口是67(发出方)和68(吸收方),分配给要求端的IP地址和本网络的具体参数则包括在Data部分 。
新参加的盘算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数 。
四、例举主机拜访网站的网络通讯进程
首先打开阅读器,在地址栏输入URL,回车,涌现网站内容 。这是我们几乎每天都在做的事,那这个进程中到底是什么原理呢?HTTP、TCP、DNS、IP这些耳熟能详的名词都在什么时候起着什么作用呢?在这里整体梳理一遍 。
4.1全部进程根本分做下面几个部分:
1、域名解析成IP地址;
2、与目标主机进行TCP衔接(三次握手);
3、发送与收取数据;
4、与目标主机断开TCP衔接(四次挥手);
4.2下面分离进行详细解释 。
4.2.1域名解析成IP地址
首先说什么是域名解析?
我们在阅读器地址栏中输入的都是相似"www.baidu.com"、"www.qq.com"等等容易记忆的英文域名,但这些字母你直接交给全部网络线路去寻找目标主机找得到吗?找不到,因为每个主机在网络中的地位都是以IP标识的,IP才是主机在网络中的地位,域名只是为了便利用户记忆而已,这就请求阅读器能够辨认域名并且将其转化为对应的IP地址 。
所以阅读器会有一个DNS缓存,其中记载了一些域名与IP的对应关系,供阅读器迅速查找须要的IP 。但是这个DNS缓存不可能存下所有的域名-IP地址,何况IP地址有时候还会变更,因此当在DNS缓存中没有找到的时候,就要先向DNS服务器要求域名解析,我们常听到的DNS服务器很大的作用就是进行域名解析 。


推荐阅读