博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络基础
阅读量:5753 次
发布时间:2019-06-18

本文共 4157 字,大约阅读时间需要 13 分钟。

[2] 基本概念
    1. 封包
       对数据的一种打包,俗称数据包,类似于“包裹”
       
    2. 协议
       双方规定好的数据包格式,类似于包裹上的收件人信息
       
    3. 互联网(Internet)
       连接网络的网络,称为internet
       
       (1) 早期
       
                                     data
           -------------------------------------------------------
                TCP(Transmit Control Protocol)         UDP  + data
           -------------------------------------------------------
                                     IP + TCP(UDP) + data
           -------------------------------------------------------
           ARPAnet              封包无线网               封包卫星网
           
           TCP(可靠)
           面向连接(电话)
           纠错(保证数据不丢失、无错误、不重复到达、顺序不乱)
           
           UDP(不可靠)
           不是面向连接
           不纠错
           
           IP(Internet Protocol)
           
       (2) 现在(TCP/IP)
           TCP/IP主协议没变,但是增加了很多协议,具体协议见PPT(了解),
           
       (3) 理想
           
           data                 应用层
           -------------------------------
           应用协议             表示层
           -------------------------------
           建立连接             会话层
           -------------------------------
           TCP(UDP)协议         传输层
           -------------------------------
           IP协议               网络层
           -------------------------------
           硬件适应的协议       数据链路层
           -------------------------------
           硬件                 物理层
4. RFC(Request For Comments)征求意见文档
[3] 家庭网络(《家庭网络.bmp》)
    1. A电脑如何跟局域网内部设备通讯?
       telnet本地linux计算机
                                                                 
    2. A电脑如何跟局域网外部的设备通讯?
       百度
       
[4] 资料和工具
    1. 资料
       TCP/IP详解卷一
    
    2. 工具
       WireShark
       
[5] 设置网络参数
    1. IP地址
       (1) 作用
           唯一标识一台主机
           
       (2) 组成
           网络地址 + 主机号
           网络地址     用于区分两台电脑是否在同一个网络内,类似电话号码的区号
           主机号       用于区分同一个网络中的两台机器
           
       (4) 长度
           IPv4        4字节(32位)
           IPv6        16字节(128位)
           
       (5) 字节序(大端--网络字节序)
       
       (6) 表示
           将4字节的数分别转换成10进程的数,用“.”分隔来表示IP地址,称点分十进制
           例: 192      .168.      0        .1
               11000000  10101000  00000000  00000001
               
       (7) 分类
         网络地址主机号   高位规定   地址范围             私有地址(局域网地址)      保留  
           A       1             3         0         0.0.0.0 - 127.255.255.255   10.x.x.x                  127.x.x.x(环回)
           B       2             2         10        128.0.0.0 - 191.255.255.255 172.16.x.x-172.31.x.x     169.254.x.x(没有DHCP服务器)
           C       3             1         110       192.0.0.0 - 223.255.255.255 192.168.x.x               
           D       组播                    1110
           E       保留
           
           网络地址         主机地址为0
           广播地址         主机地址为全1的,如: 192.168.0.255
 
    2. 子网掩码(mask)
       IP地址 & mask = 网络地址
       例:
          十进制                         二进制
          192.168.0.1        11000000  10101000  00000000  00000001
        & 255.255.255.0      11111111  11111111  11111111  00000000
        ------------------------------------------------------------
          192.168.0.x        11000000  10101000  00000000  00000000
        
    3. 网关(Gate)
       A电脑<---->网关<----->internet
    
    4. DNS
       域名( 地址
       
[6] telnet--->虚拟机
    1. 将虚拟机的IP地址转换为他的MAC(网卡)地址     ARP
    2. A电脑通过虚拟机的mac地址发送数据包虚拟机    TCP
    3. 虚拟机通过A电脑的mac地址发送数据包给A电脑   TCP
    4. A电脑通过虚拟机的mac地址发送数据包虚拟机    TCP
    5. A电脑通过虚拟机的mac地址发送数据包给虚拟机  telnet
    IE---->baidu
    1.  地址                         DNS协议
    2. 通过网关的IP地址转换为他的mac地址                ARP
    3. 通过网关的MAC地址发送数据(发给baidu)包给网关     TCP
    4. baidu-->网关--->A电脑                            TCP
    5. A电脑-->网关--->baidu                            TCP
    6. A电脑-->网关--->baidu                            http
[7] 端口号
    (1) 作用
        每一个应用程序进程有一个端口号,通讯时区分数据包属于哪个应用程序进程
       
    (2) 分类
        1 - 1023           知名端口号(已经分配给标准应用服务软件)
        1024 - 5000        注册端口号(非标准应用服务软件的软件可以申请的端口号范围)
        5000 - 65535       动态分配的端口号(系统动态分配给应用程序使用的)
       
    (3) 长度
        2字节(16bit)
       
[8] 数据包格式
    ARP数据包结构
    -----------------------------------
    | dest mac  | src mac  | arp data  |
    ------------------------------------
   
    TCP
    -------------------------------------------------------------------
    | dest mac  | src mac  | dest ip | src ip |  dest port | src port |
    -------------------------------------------------------------------
   
    http 或 telnet
    ---------------------------------------------------------------------------
    | dest mac  | src mac  | dest ip | src ip |  dest port | src port | data
    ---------------------------------------------------------------------------
   
    必须要设置的参数?
    1. dest ip
    2. dest port
[10] socket 
     1. 历史
        1982                         本地通信
        1986                         网络通信
       
     2. 原理
        一种特殊的文件
       
     3. 目的
        将网络操作模拟成文件操作
       
     4. 类型及用途
        SOCK_STREAM                  流式套接字          TCP
        SOCK_DGRAM                   报文套接字          UDP
        SOCK_RAW                     原始套接字          IP、ICMP
       
[11] ip转换
     1. 头文件
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>
     2. 数据结构
        typedef unsigned int in_addr_t;
        struct in_addr
        {
                unsigned int s_addr;
        };
     3. 函数
        (1) ip字符串----> 整数(大端)
            /*
             * @param[in]         cp                     ip字符串
             * @param[out]      inp                     二进制形式(网络字节序 大端)的ip地址
             * @return               @li !0               ip字符串是有效的ip地址
             */
            int inet_aton(const char *cp, struct in_addr *inp);
              /*
               * @param[in]         cp  ip字符串
               * @return               二进制形式的IP地址
               * @li                      INADDR_NONE(-1)  ip字符串无效
               * @notes                 INADDR_NONE(-1)也是有效的IP地址(255.255.255.255)
               */
            in_addr_t inet_addr(const char *cp);
        (2) 整数 ------->ip字符串
            /*
             * @param[in] in 二进制形式的IP地址
             * @return ip字符串
             * @notes ip字符串放在静态数据段,并且放在固定位置,所以第二次调用会覆盖第一次调用的结果
             */
            char *inet_ntoa(struct in_addr in);
[12] 整数字节序转换
     1. 头文件
        #include <arpa/inet.h>
     2. 函数
        (1) 主机字节序----->网络字节序
            /*
             * @param[in] hostlong(hostshort)   主机字节序的整数
             * @return          网络字节序的整数
             */
            unsigned short long htonl(unsigned short long hostlong);
            unsigned short int htons(unsigned short int hostshort);
        (2) 网络字节序----->主机字节序
            /*
             * @param[in] nettlong(netshort)   网络字节序的整数
             * @return          主机字节序的整数
             */
            unsinged long ntohl(unsigned long netlong);
            unsigned short ntohs(unsigned short netshort);

转载地址:http://roukx.baihongyu.com/

你可能感兴趣的文章
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>
例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)
查看>>
JS 原生ajax写法
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>