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

相关推荐

  • 超文本传输安全协议—HTTPS

        超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。H…

    Linux干货 2017-08-07
  • N28-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

    2、编辑/etc/group文件,添加组hadoop。

    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;

    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

    9、找出/etc/passwd文件中的一位数或两位数;

    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    Linux干货 2017-12-26
  • Linux终端类型

    Linux终端类型 关键字:linux终端,串行终端ttySn;伪终端pty;控制终端tty;控制台终端console 要想与Linux打交道,就必须学会使用Linux终端。所谓Linux终端,其实也就是一种控制台,一种字符设备,通常用tty标识,它是用户和Linux内核交互的平台,用户能在平台上通过各种指令操作Linux。终端的特殊设备文件一般分为以下几种…

    Linux干货 2016-10-19
  • ocata openvswtich

      一、Controller配置1、安装软件 # yum –enablerepo=centos-openstack-ocata,epel -y install openstack-neutron openstack-neutron-ml2 2、修改配置文件/etc/neutron/neutron.conf [DEFAULT]core_p…

    2018-01-22
  • grep命令系列:grep中的正则表达式

     grep :是一款文本过滤工具 。其作用:根据用户指定的“模式”对目标文本进行逐个的匹配检查。  正则表达式 REGEXP:有一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面的意义,而表示控制或通配的功能。    正则表达式分为两种:         基本正则表达式:…

    Linux干货 2017-04-10
  • 网络基础

    什么是计算机网络? 是指将地理位置不同的具有独立功能的多台计算机及外部设备,借助于某种网络介质连接起来,实现资源共享和信息传递的计算机系统 计算机网络的特点? 1、能实现数据信息的快速传输和集中处理 2、可共享计算机系统资源 3、提高了计算机的可靠性及可用性 4、能均衡负载互相协作 常见的网络应用程序 Web 浏览器(Chrome、IE、Firef…

    Linux干货 2016-09-09