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 17:02
下一篇 2016-11-25 21:44

相关推荐

  • N25第四周博客作业

    第四周博客作业 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。      3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的i…

    Linux干货 2016-12-19
  • 三次握手和四次挥手

    TCP三次握手:                              &n…

    2017-09-02
  • 一起学DHCP系列(四)安装、配置

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/162580       本节将主要讲述DHCP的安装和配置。     …

    Linux干货 2015-03-25
  • MySQL常用字符函数

    MySQL常用字符函数简介 CONCAT(S1,S2…Sn) 连接S1,S2…Sn为一个字符串 concat函数,把传入的参数连接成为一个字符串。 例如: 把“aaa”、“bbb”、”ccc”3个字符串连接成一个字符串,“aaabbbccc”.另外任何与NULL进行连接的结果都将是NULL. >SELEC…

    Linux干货 2017-05-01
  • PHP安全模式详解(PHP5.4安全模式将消失)

    1. 安全模式      一直没有用过php的safe_mode安全模式,以此说明作为日后参考。      PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 web 服务器层和操作系统层显得非常不现…

    Linux干货 2015-06-02
  • 第二十一周作业

    1、回顾并详细总结MySQL的存储引擎、索引; 常用存储引擎的对比: 特点 MyISAM InnoDB MEMORY MERGE NDB 存储限制 有 64TB 有 没有 有 事务安全 支持 锁机制 表锁 行锁 表锁 表锁 行锁 B树索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 数据缓存 支持 支持 支持 索引缓存 支持…

    2017-07-19