day01.2-计算机网络协议

注:本文摘自林海峰老师的博客,作为个人学习笔记,日后方便阅读,原文详见链接www.cnblogs.com/linhaifeng/articles/5937962.html

一.  ISO协议

       互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层:

                    

          每层运行常见物理设备:

                    

   1. 物理层

        物理层由来:将孤立的计算机之间通过接入internet的方式联接在一起,完成组网。

          物理层功能:主要是基于电器特性发送高低电压(电信号),如,高电压对应数字“1”,低电压对应数字“0”。

                   

   2. 数据链路层       

          数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号的分组方式和所表意义。

          数据链路层的功能:定义了电信号的分组方式。

          以太网协议ethernet:        

          *    一组电信号构成一个数据包,叫做‘帧’

          *    每一数据帧分成:报头head和数据data两部分

               

         head包含:(固定18个字节)

          *    发送者/源地址,6个字节(即发送机MAC地址值);

          *    接收者/目标地址,6个字节(即接收机MAC地址值);

          *    数据类型,6个字节。

          data包含:(最短46字节,最长1500字节)

          *    数据包的具体内容。

          head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送。

        MAC地址 每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)。

         这样,处于同一子网内的计算机之间就可以通过基于mac广播的方式实现通信了。

   3. 网络层         

         网络层由来:世界范围的互联网是由一个个彼此隔离的小的局域网组成的,如果所有的计算机之间通信都采用以太网的广播方式,那么一台 机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,会是一种灾难。所以,必须找出一种方法来区分哪些计算机属于同一广播域,哪   些不是,如果是就采用广播的方式发送,如果不是,就采用路由的方式(向不同广播域/子网分发数据包)。

         网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。

         IP协议    

        *    规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示;

        *    范围0.0.0.0-255.255.255.255;

        *     一个ip地址通常写成四段十进制数,例:172.16.10.1。

        IP数据包:IP数据包也分为head(20~60字节)和data(<=65515字节)部分,无须为IP包定义单独的栏位,直接放入以太网包的data部分。

                      

          ARP协议

         arp协议由来:计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要利用arp协议。

         arp协议功能:以广播的方式发送数据包,获取目标主机的mac地址。

         (1).  首先通过ip地址和子网掩码区分出自己所处的子网;

                      

         (2).  分析172.16.10.10/24与172.16.10.11/24是否处于同一子网络。如果是,转至步骤(3);如果不是,则转至步骤(4);

         (3).   这个包会以广播的方式在发送端所处的子网内传输,所有主机接收后拆开包,发现目标ip为自己的,就单播响应,返回自己的mac;

                     

                  至此,发起方利用返回mac值与目标机建立通信。

                     

            (4).   路由器收到广播数据包,发现是请求自己的mac地址,然后路由回复一个ARP单播应答,返回自己的mac;

                     

         (5).   发起方收到应答后,将网关mac地址对应于目标机ip地址,封装消息;

                     

         (6).   路由收到数据包,检查目的IP地址,发现不是给自己的,决定要进行路由。然后查询路由表,如果已有目标机mac与ip地址的映射,则直接转发过去即可;若发现没有目标机的地址映射,路由器发送arp请求查询目标机的mac地址(原理同2、3)。由此完成发起方与目标机之间的通信链路。       

   4. 传输层        

         传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,接下来如何标识这台主机上的众多应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

         传输层功能:建立端口到端口的通信,端口范围为0-65535,其中0-1023为系统占用端口。

         TCP协议

         可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的数据部长度,以确保单个TCP数据包不必再分割。

               

         TCP报文:

               

         TCP三次握手与四次挥手:

                 

         UDP协

         不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好可以放入一个IP数据包的数据部分中。

                

   5. 应用层

         应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开放的,大家都可以开发自己的应用程序,数据多种多样,必须规定数据的组织形式。 

         应用层功能:规定应用程序的数据格式。

         例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

                   

原文地址:https://www.cnblogs.com/zizaijiapu/p/9732654.html