上个内容中,我们知道了只要是本地通信得广播,而广播不是逻辑(IP)地址对应的MAC地址,所以主要是将逻辑地址转换成目标地址,这叫地址解析称为ARP,还有一种是反向解析RARP,都是在本地网络中完成的,逻辑IP地址分为两个阶段,前一段分为网络地址,后一段分为主机地址,如何判定?用子网掩码用来判断那一部分是网络位,那一部分是主机位,最重要的是子网掩码是根据一个地址来获取网络地址的,IP地址和网关一定在同一网络中,不然转发不出去。
一个交换机可以连接不同的冲突域,而一个路由器可以连接不同的广播域。
路由器有一张表,叫路由表,可以静态和动态生成,动态生成的话意味着管理员就不用手动管理这张表,但学习和生成是需要一段时间,一旦条目发生改变,使得网络在转换另一种稳定的网络之前,这个过程叫路由表的收敛过程,如果范围比较大的话,其收敛的速度肯定很慢。
IP叫被路由协议,上面则叫路由协议。
MAC地址实现的是本地通信地址。
IP地址实现的是主机到主机的通信。
我们的操作系统是多认为的,既能上网,有能聊天,还能打游戏等,如果主机A要与IP7.1通信,7.1的服务器既要提供上网服务,又要提供聊天服务,也要提供打游戏服务,那么这些请求该怎么去响应,如何知道和7.1的进程去通信?为了标识那个进程和那个主机通信服务,那就还需要一个地址,这个地址除了IP地址以外,还得需要一个端口号的地址,比如说7.1上的80(简称7.1:80)就是网页服务,然后7.1的100就是提供游戏服务,之后主机A就会打开一个端口7.1的端口服务进行通信,所以用端口来被识别同一主机上的不同进程,所以端口来标识进程与进程之间的通信的。
如果和WEB服务通信该如何知道端口?我们的端口的范围为0-65535,对方的服务器的WEB接口到底在那个服务器上服务?端口和进程之间并没有必然间的联系,意味着工作在任意一端口,对于主机来讲就像和WEB通信,该如何找?我们就事先有个规范,定义好(有个机构叫做名称地址分配机构),如果用WEB服务,就必须使用那个端口,其它不行,80端口专门用于网页服务,这个端口是可以改的,不过就是很麻烦,因为某些著名的服务都有固定的端口,客户端使用的是随机的,没有使用的端口,80端口还得随时监听客户端响应,这叫主动模式,但是端口和IP地址还是有关联关系的,每个地址上有六万多端口可以用,两台服务器同时用80端口并不冲突,因为IP不同,当前主机如何区别如何区别需要绑定起来,这叫做套接字,IP和端口绑定的一组就叫套接字。
什么是协议?就是拥有相同的功能和标准建立起来的。
OSI参考模型
共有七层,但常用的是TCP/IP模型,共有四层。OSI定义的很规范,但有缺陷,有很多功能,在两个层次上都分别实现,比如数据包校验在二层实现,在四层也要实现,同一种功能实现两次不是一件好事,既浪费资源,又降低数据报文连接(生成速度),TCP/IP看上去不那么规范,但是它是能工作的模型,是现实中正用的模型。
在IP首部,共32位二进制,每8位一个片段,共4段,8个0到8个1,整个地址分为两段,网络段和主机段,为了标识不同的网络,因此分了类别,分别标记网络和主机地址的不同长度,常用的有A、B、C类
A类:只有一段标记网络地址,后面三段标记为主机地址,这是包含主机范围最多的的,是2^24-2。
B类:前两段标记网络地址,后面两段标记为主机地址,它的主机范围是2^16-2。
C类:前三段标记网络地址,最后一段标记为主机地址,它的主机范围是2^8-2。
如何区分是那一类的。
我们是靠第一段的数字来进行区别的,对于A类来讲,首位是0,从8个0到01111111,首位是0,后位变化,但其中127用于回环所以有效范围是1-126,B类地址从10开头,范围是128-191,10000000-10111111,共64个B类网络,C类地址从110开头11000000-11011111,范围是:191-223,共32个C类地址。
ICANN(国际互联网地址名称分配机构)用来进行分配(包括注册域名),事先预留出来的地址只能在内部使用,叫做私有地址,不能用在互联网上,私有地址如下:
A类:10.0.0.0/8。
B类:172.16.0.0/16—172.31.0.0/16。
C类:192.168.0.0/24—192.168.255.0/24。
这些地址也不会在路由器上路由,作源地址也可以,但作为目标地址是接收不回来的报文,自己的IP与子网掩码相与,得到网络地址,目标IP与源IP的子网掩码相与,如果不是一样的,就是远端地址。
目标地址是主机的话,称之为主机路由,目标地址是网络的话,称之为网络路由,一般来说选择网络时,是从最佳匹配作为选择标准。
0.0.0.0是默认路由,如果条目中没有匹配的目标地址的话,就走默认路由。
TCP传输层说明
在TCP/IP层中,网际层的上方就是传输层,整个网络其实也是沙漏模型,底层是IP报文,下面可能属于不同的二层网络,对于IP来讲统一要呈现IP形式,到IP这儿根据应用的不同还会分不同的协议,比如传输层有TCP和UDP协议,TCP叫传输控制协议,UDP叫用户数据报协议,TCP和UDP功能不一样。
TCP是有连接协议的。
UDP是无连接协议的。
TCP是有三次握手的,传输完成就拆除通道,而且是双向拆除,如果不响应就自行拆除(前提发的报文无响应)
TCP首部—控制更多信息(共32位)
Source Port Number | 源端口 (16位) |
Destination Port Number | 目标端口 (16位) |
Sequence Number | 序列号 (32位) |
Acknowledgement Number | 确认号 (32位) |
Header Length | 首部长度 (4位) |
Reserred |
保留位 (6位,其实是3位)它的子集:URG、ACK、PSH、RST、SYN、FIN |
windows size | 窗口大小 (16位) |
TCP Checksum | TCP校验和 |
Orgent Pointer | 紧急指针 (16位)1、指针有效 0、指针无效 |
Options | 选项 (32位) |
Data | 数据 (32位) |
原创文章,作者:刘 祥宇,如若转载,请注明出处:http://www.178linux.com/60754