Linux网络功能协议介绍(二)

  上个内容中,我们知道了只要是本地通信得广播,而广播不是逻辑(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

(0)
刘 祥宇刘 祥宇
上一篇 2016-11-25
下一篇 2016-11-25

相关推荐

  • 第二周 文件管理

    1.Linux上的文件管理类型命令都有哪些,其常用的使用方法及其相关示例演示 mkdir—— 创建目录  make directory 命令格式——mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v:verbose,显示详细过程; -m MODE:创建目录直接给定权限,否则是默认权限; 注意:路径基…

    2017-12-10
  • 常用命令

    基本命令和系统命令

    Linux干货 2017-11-30
  • mount中-o的选项利用

        Mount下—-o 选项的各项用处  mount-o 选项 sync,async 同步模式,异步模式(defaults)         此选项的默认模式为异步模式。在同步模式下,内存的任何修改都会实时的同步到硬盘当中,这种模式的…

    2017-08-19
  • corosync+pacemaker对mariadb实现高可用

    corosync+pacemaker对mariadb实现高可用 利用nfs共享存储,导出一个目录作为mariadb的数据目录,然后利用corosync+pacemaker对mariadb进行高可用 1、实验环境 2、实验前的分析 利用nfs导出目录作为mariadb的共享目录,要确保各个mariadb节点对该目录具有写权限,也就是要确保nfs服务器上有一个U…

    Linux干货 2016-11-24
  • python分支循环和列表

    if语句 if condition: 代码块 condition必须是一个bool类型,这个地方有一个隐式转换bool(condition) if 1<2: print(‘1 less than 2’)   循环——while语句 while condition: block 当条件满足即condition为True,…

    2018-03-27