Linux 网络编程 全解(一)--------网络基础协议

版权声明:本BLOG上原创文章未经本人许可,不得转载,不得用于商业用途及传统媒体,否则属于侵权行为。 https://blog.csdn.net/weixin_40204595/article/details/82811246

写在前面:说一下写这个系列的目的,随着对物联网开发的深入,越来越觉得自己网络基础知识的薄弱,虽然开发过程中不需要对网络基础有很深入的了解照样能进行,但有一些问题仍然是不知其因,所以这个系列打算从最基本的网络知识展开记录,也是一边学习一边整理笔记。欢迎大家共同学习,QQ:993650814.

正文:

一、网络分层模型结构:

1、OSI 7层模型和TCP/IP4层模型对应关系:

     OSI7层模型简单记法:物、数、网、传、会、表、应。

     TCP/IP4层模型: 网、网、传、应(网络接口层、网络层、传输层、应用层)。

     对应举例:

              应用层:http、ftp、ssh、nfs
              传输层:TCP、UDP
              网络层:IP
              网络接口层(链路层或者网络接口层):以太网、ARP

      他们对应关系如下:

    

二、以太网帧协议和ARP请求(网络接口层):

    ARP请求:是根据IP地址获取硬件mac地址。

   以太网帧协议:根据mac地址,完成数据包传输。

    在网络通讯时,源主机的应用程序只知道目的主机的IP地址和端口号,却不知道目的主机的mac地址,而数据包首先是被网卡接受到然后再往上处理上层协议的,如果收到的数据包的硬件地址(mac地址)与本机不一致,数据包就会被丢弃。所以,通讯前必须要获取目的主机的硬件(mac)地址。ARP协议就起到这个作用。看一下ARP数据包格式:

   如上所述,我们已经知道以太网源地址、发送端以太网地址、发送端IP、地址、目的IP地址,ARP请求就是要找到这个目的地址。过程如下:源主机将ARP数据包以广播形式发送到局域网中,其中目的地址(FF:FF:FF:FF:FF:FF)表示广播,网络中的其他主机收到数据包之后,会解析出目的IP地址,如果跟本机的IP地址相符,就将自己的硬件(mac)地址添加到上述ARP包中的目的以太网地址字段中回复给源主机;如果IP地址跟本机不相符,则直接丢弃。

   ARP数据包中的其他字段解释:

   硬件类型:链路层网络类型,1为以太网

   协议类型:0x0800表示IP协议

   硬件地址长度:即mac地址的长度为6.

   协议地址长度:即IP地址的长度为4

   OP:1表示ARP请求,2表示ARP应答。

三、IP段格式(网络层)

   

版本:表IPv4、或者IPv6

TTL:time to live,设置数据包在路由节点中的跳转上限,每经过一个节点,该值减一,减到0的时候,该路由器节点将该数据包丢掉。

源IP地址:4个bytes,32位。

目的IP: 4个bytes,32位。

 四、端口号和UDP协议(传输层)

    udp协议中包含16位源端口号,和16位目的端口号,端口号最大65536
    IP地址:可以在网络环境中,唯一标识一台主机。
    端口号:可以在网络的一台主机上唯一的标识一个进程。
    IP+端口号:可以在网络环境中,唯一的标识一个进程。

五、TCP协议(传输层)

    源端口号和目的端口号:
    32位序号:
    32位确认序号:
    6个标志:
    16位窗口大小

六、BS模型和CS模型对比

       bs模型:browser-server:浏览器、服务器模型
        优点:
    cs模型:client-server:客户端、服务器模型
              cs                                            bs
    优点:可以缓存大量数据,协议选择灵活            安全性高、跨平台、开发工作量小
               速度快
    
    缺点:安全性,开发工作量大(客户端和            不能缓存大量数据,严格遵守http协议
              服务器都有需要开发)

猜你喜欢

转载自blog.csdn.net/weixin_40204595/article/details/82811246