• 01_网络概述


    知识点1【分组交换】

    知识点2【交换方式】存储-转发

    知识点3【网络分层结构】(重要

    知识点4【协议的介绍】

    1、IP协议 网际协议(网络层)

    2、TCP协议 传输控制协议 (传输层)(重要)

    3、UDP协议 用户数据报协议 (传输层)

    知识点5【地址介绍】(了解)

    1、mac地址(链路层) 设备和设备的通信

    2、IP地址IPv4 (网络层) 主机 和 主机 32位

    3、IP地址分类(更加合理的利用IP地址)

    4、IP地址分类(可直接连接Internet)

    5、回环地址

    6、子网掩码

    知识点6【端口】

    1、端口号:

    2、端口的分类

    知识点7【数据在各层的组包、解包】(了解) 

     mac头:

    知识点8【开发流程】(了解)

    TCP—面向连接:

    UDP—面向无连接:

    知识点9【字节序的概念】(重要)


    知识点1【分组交换】

    每一小块必须包含一个首部

    首部:

    1、该数据在原始数据中的位置(方便数据重组)

    2、目的主机的地址信息(方便数据传输)

    知识点2【交换方式】存储-转发

    节点收到分组,先暂时存储下来,再检查其首部,按

    照首部中的目的地址,找到合适的节点转发出去

    特点:

    1、以分组作为传输单位

    2、独立的选择转发路由

    3、逐段占用,动态分配传输带宽

    想一想:节点收到的分组有序吗?无序的,重组发生在目的主机上

    知识点3【网络分层结构】(重要

    七层模型:OSI/RM开放互联模型(理论上的标准,实现的)

    应用层:应用层的协议APP

    表示层:将计算机能识别的二进制 转换成 人能识别的数据

    会话层:分析数据的通信状态

    传输层:进程和进程间的通信(端口信息)

    网络层:主机与主机之间的通行(IP地址)

    数据链路层:收发的完整的帧数据(在网络上独立传输)mac地址(设备地址)

    物理层:不是物理设备,而是物理设备上的接口类型、电流强弱

    四层协议:TCP/IP协议

    应用层:应用层的协议 FTP、Telnet、HTTP

    传输层(运输层):进程和进程间的通信(端口信息)TCP、UDP

    网络层:主机与主机之间的通行(IP地址)IP、ICMP

    链路层:收发的完整的帧数据(在网络上独立传输)mac地址(设备地址)ARP RARP

    知识点4【协议的介绍】

    1、IP协议 网际协议(网络层)

    在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议

    尽量将数据从源地址 发送 目的地

    特点:

    不可靠:它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务

    无连接:IP并不维护任何关于后续数据包的状态信息。每个数据包的处理是相互独立的。IP数据包可以不按发送顺序接收

    IP数据包中含有发送它主机的IP地址(源地址)和接收它主机的IP地址(目的地址)

    2、TCP协议 传输控制协议 (传输层)(重要)

    TCP是一种面向连接的,可靠的传输层通信协议

    功能:

    提供不同主机上的进程间通信

    特点

    1、建立链接->使用链接->释放链接(虚电路)

    2、TCP数据包中包含序号和确认序号

    3、对包进行排序并检错,而损坏的包可以被重传

    服务对象

    需要高度可靠性且面向连接的服务

    如HTTP、FTP、SMTP等

    总结:TCP 面向链接 可靠 排序 检错 失败重传 不支持广播

    3、UDP协议 用户数据报协议 (传输层)

    UDP是一种面向无连接的传输层通信协议

    功能:

    提供不同主机上的进程间通信

    特点

    1、发送数据之前不需要建立链接

    2、不对数据包的顺序进行检查

    3、没有错误检测和重传机制

    服务对象

    主要用于“查询—应答”的服务

    如:NFS、NTP、DNS等

    总结:UDP 无连接 不排序 不检错 不重传 快 支持广播

    知识点5【地址介绍】(了解)

    1、mac地址(链路层) 设备和设备的通信

    MAC地址,用于标识网络设备,类似于身份证号,且理论上全球唯一。

    组成以太网内的MAC地址是一个48bit的值

    2、IP地址IPv4 (网络层) 主机 和 主机 32位

    ip地址组成:使用32bit,由{网络ID,主机ID}两部分组成

    子网ID:IP地址中由子网掩码中1覆盖的连续位

    主机ID:IP地址中由子网掩码中0覆盖的连续位

    IP和子网掩码一起使用: 

    案例:192.168.0.111/255.255.255.0 子网ID192.168.0 主机ID 111

    案例:192.168.0.111/255.255.0.0 子网ID 192.168 主机ID0.111

    案例:192.168.0.111/255.0.0.0 子网ID 192 主机ID168.0.111

    子网ID:标记网络网段 192.168.0.111/255.255.255.0 192.168.0.112/255.255.255.0

    主机ID:标记同一网段下的主机号

    总结:子网ID标记的是属于哪个网段, 主机ID标识的是网段下具体的主机号

    192.168.0.111/255.255.255.0 == 192.168.0.111/24

    192.168.0.111/255.255.0.0 == 192.168.0.111/16

    192.168.0.111/255.0.0.0 == 192.168.0.111/8

    案例:192.168.0.111/24 子网ID192.168.0 主机ID 111

    案例:192.168.0.111/16 子网ID 192.168 主机ID0.111

    案例:192.168.0.111/8 子网ID 192 主机ID168.0.111

    ip地址特点:不同网段 不能直接通信

    子网ID不同的网络不能直接通信,如果要通信则需要路由器转发

    主机ID全为0的IP地址 表示 网段地址

    主机ID全为1的IP地址 表示该 网段的广播地址

    案例:192.168.0.111/255.255.255.0 问当前IP所处网段地址__192.168.0.0__ 以及 广播地址___192.168.0.255_____

    192.168.000.111

    255.555.555.0

    注意:任何一个网段中的网段地址和广播地址 都不能分配主机

    192.168.0.1~192.168.0.254 == 可用的IP数量 只有254个

    案例:192.168.0.111/255.255.0.0 问当前IP所处网段地址_192.168.0.0___ 以及 广播地址___192.168.255.255_____可用的主机数1~65534 == 可用的IP数量 只有65534个

    3、IP地址分类(更加合理的利用IP地址)

    A类地址:默认8bit子网ID,第一位为0 广域网(国家-国家,大城市-大城市)

    0xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx/255.0.0.0

    B类地址:默认16bit子网ID,前两位为10 城域网(城市-城市)

    10xx xxxx xxxx xxxx xxxx xxxx xxxx xxxx/255.255.0.0

    C类地址:默认24bit子网ID,前三位为110

    110x xxxx xxxx xxxx xxxx xxxx xxxx xxxx/255.255.255.0 局域网

    D类地址:前四位为1110,多播地址

    E类地址: 前五位为11110,保留为今后使用

    A,B,C三类地址是最常用的

    4、IP地址分类(可直接连接Internet)

    公有IP(可直接连接Internet)

    经由InterNIC所统一规划的IP

    私有IP(不可直接连接Internet )

    主要用于局域网络内的主机联机规划

    5、回环地址

    功能

    主要是测试本机的网络配置,能ping通127.0.0.1说

    明本机的网卡和IP协议安装都没有问题

    注意

    127.0.0.1~127.255.255.254中的任何地址都将回环到本地主机中

    不属于任何一个有类别地址类,它代表设备的本地虚拟接口

    设置LinuxIP sudo ifconfig eth0 192.168.0.222 netmask 255.255.255.0

    6、子网掩码

    子网掩码(subnet mask)又叫网络掩码、地址掩码是一个32bit由1和0组成的数值,并且1和0分别连续。

    特点

    必须结合IP地址一起使用,不能单独存在

    IP地址中由子网掩码中1覆盖的连续位为子网ID,其余为主机ID

    子网掩码的表现形式

    192.168.220.0/255.255.255.0 ==> 11111111.11111111.11111111.00000000

    192.168.220.0/24

    手动进行配置如下(linux)

    案例:一下合法的子网掩码有哪些?ABD

    A:255.255.0.0 B:255.0.0.0 C:255.0.255.0 D:255.255.255.128

    知识点6【端口】

    TCP/IP协议采用端口标识通信的进程

    用于区分一个系统里的多个进程

    特点

    1、对于同一个端口,在不同系统中对应着不同的进程

    2、对于同一个系统,一个端口只能被一个进程拥有

    3、一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样,进程送交传输层的数据也通过该端口被送出

    1、端口号:

    类似pid标识一个进程;在网络程序中,用端口号(port)来标识一个运行的网络程序

     

    特点

    1、端口号是无符号短整型的类型

    2、每个端口都拥有一个端口号

    3、TCP、UDP维护各自独立的端口号

    4、网络应用程序,至少要占用一个端口号,也可以占有多个端口号

    2、端口的分类

    知名端口(1~1023)

    由互联网数字分配机构(IANA)根据用户需要进行统一分配

    例如:FTP—21,HTTP—80等

    服务器通常使用的范围;若强制使用,须加root特权

    动态端口(1024~65535)

    应用程序通常使用的范围

    注意

    端口号类似于进程号,同一时刻只能标志一个进程

    可以重复使用

    知识点7【数据在各层的组包、解包】(了解) 

     mac头:

    IP、TCP、UDP头: 

    知识点8【开发流程】(了解)

    通信流程:决定了写代码的流程

    通信原理:协议 决定了 每一步 组啥样的报文

    TCP—面向连接:

    电话系统服务模式的抽象

    每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程

    本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同

    保证数据传输的可靠性

    UDP—面向无连接:

    邮件系统服务模式的抽

    每个分组都携带完整的目的地址

    不能保证分组的先后顺序

    不进行分组出错的恢复和重传

    不保证数据传输的可靠性

    你了解网络通信架构:C/S(客户端/服务器) B/S(浏览器/服务器)

    server工作过程

    打开一通信通道并告知本地主机,它愿意在一特定端口(如80)上接收客户请求

    等待客户请求到达该端口

    接收客户请求,并发送应答信号,激活一新的线程处理这个客户请求

    服务完成后,关闭新线程与客户的通信链路

    client工作过程

    打开一通信通道并连接到服务器特定端口

    向服务器发出服务请求,等待并接收应答

    根据需要继续提出请求

    请求结束后关闭通信通道并终止

    知识点9【字节序的概念】(重要)

    字节序概念

    是指多字节数据的存储顺序(多个字节看成一个整体处理)

    分类

    小端格式:将低位字节数据存储在低地址

    大端格式:将高位字节数据存储在低地址

    注意

    LSB:低地址

    MSB:高地址

    注意:大小端 是系统自动确定

    问题:如何确定当前系统是大端存储 还是 小端存储?

    1. /* ************************************************************************
    2. * Filename: 00_test.c
    3. * Description:
    4. * Version: 1.0
    5. * Created: 12/05/20 16:48:16
    6. * Revision: none
    7. * Compiler: gcc
    8. * Author: YOUR NAME (),
    9. * Company:
    10. * ************************************************************************/
    11. #include <stdio.h>
    12. typedef union
    13. {
    14. //共用体 成员公用一个空间
    15. unsigned short data;
    16. unsigned char buf[2];
    17. }DATA;
    18. int main(int argc, char *argv[])
    19. {
    20. printf("%d\n",sizeof(DATA));
    21. DATA ob;
    22. ob.data = 0x0102;
    23. //如果buf[0]=0x01大 buf[0]=0x02
    24. if(ob.buf[0]==0x01 && ob.buf[1]==0x02)
    25. {
    26. printf("大端格式\n");
    27. }
    28. else if(ob.buf[0]==0x02 && ob.buf[1]== 0x01)
    29. {
    30. printf("小端格式\n");
    31. }
    32. return 0;
    33. }

     运行结果:

  • 相关阅读:
    视频理解论文实验笔记2014-2022
    Segger RTT深度使用说明-移植-Jlink rtt viewer显示-输出到Secure CRT
    Java线程的异常处理机制
    【牛客 - 剑指offer】JZ8 二叉树的下一个结点 Java实现
    Docker
    “分布式锁”,一直以来你的选择依据正确吗?
    【Windows篇】Telnet指令介绍以及telnet测试端口连接示例
    单商户商城系统功能拆解26—营销中心—限时秒杀
    【面试题精讲】MySQL中覆盖索引是什么
    Shrio整合Jwt
  • 原文地址:https://blog.csdn.net/buhuidage/article/details/127894030