《网络协议》TCP/IP 基本概述

TCP/IP 分层

分层结构如下:

  1. 应用层:负责处理特定的应用程序细节。包括:Telnet (远程登录)、FTP (文件传输协议)、SMTP (简单邮件传输协议)、SNTP (简单网络管理协议)
  2. 传输层:主要功能为两台主机上的应用程序提供端到端的通信,通过端口号识别两台主机上相对应程序之间进行通信。主要包括:TCP (传输控制协议)、UDP (用户数据报协议)
    • TCP 协议:是一种面向连接的传输层协议,确保两台主机提供高可靠性的数据通信。它的任务是把来自应用程序的数据分成合适的小块交给下面的网络层,确认接收到数据的分组。为数据块设置超时时钟,一旦超过该时间就重新发送数据;
    • UDP 协议:是一种面向无连接的传输层协议,为应用程序发送和接收数据报,只是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何必须的可靠性都由应用程序提供。UDP 协议常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域;
  3. 网络层:处理分组在网络中的活动,例如分组的选路。主要包括:IP 协议(网际协议)、ICMP 协议(Internet 互联网控制报文协议)、IGMP 协议(Internet 组管理协议)
    • IP 协议:负责基于 IP 地址转发数据包,不具有重发机制,是一种不可靠、无连接的传输协议,整个互联网能够通过把 IP 地址的作为主机标识,跨越网络传送和接收数据包;
    • ICMP 协议:是 IP 协议的附属协议,IP 层用它来与其他主机或路由器交换错误报文或其他重要信息。IP 数据包在发送过程中发生异常导致无法到达目的端,则使用 ICMP 协议给发送端发送一个异常消息通知,该协议也可用来检查网络的健康状态;
    • IGMP 协议:它用来把一个 UDP 数据报多播到多个主机;
  4. 链路层:处理与传输媒介相关的物理接口细节。主要包括:操作系统的设备驱动程序、计算机中对应的网络接口卡

互联网的地址

按 IP 地址格式分类

        互联网上的每个接口必须有一个唯一的 IP 地址, IP 地址长度 32 bit,,即 4 个字节,每个 IP 地址都由 标识位、网络号 和 主机号三部分组成。32 位二进制数地址通常写成四个十进制数, 每个十进制整数对应一个字节,这就是“点分十进制表示法”。 第一个十进制整数即可区分 IP 地址类型:0 ~ 127 A类,128 ~ 191 B类,192 ~ 223 C类, 224 ~ 239 D类, 240 ~ 225 E类;下面是五类不同的 IP 地址的结构:

《网络协议》TCP/IP 基本概述_第1张图片

A类地址:

  • 十进制取值范围 :0.0.0.0 ~ 127.255.255.255;
  • 二进制取值范围 :0(标识位) 0000000(网络号) 00000000 00000000 00000000(主机号) ~ 0(标识位) 1111111(网络号) 11111111 11111111 11111111(主机号);
B类地址:
  • 十进制取值范围 : 128.0.0.0 ~ 191.255.255.255;
  • 二进制取值范围 :10(标识位) 000000 00000000(网络号) 00000000 00000000(主机号) ~ 10(标识位) 111111(网络号) 11111111 11111111 11111111(主机号);
C类地址:
  • 十进制取值范围 : 192.0.0.0 ~ 223.255.255.255;
  • 二进制取值范围 :110(标识位) 00000 00000000 00000000(网络号) 00000000(主机号) ~ 110(标识位) 11111 11111111 11111111(网络号) 11111111(主机号);
D类地址 :
  • 十进制取值范围 : 224.0.0.0 ~ 239.255.255.255;
  •  二进制取值范围 : 1110(标识位) 0000 00000000 00000000 00000000 00000000(多播组号) ~ 1110(标识位) 1111 11111111 11111111 11111111(多播组号);
E类地址:
  • 十进制取值范围 :240.0.0.0 ~ 255.255.255.255;
  • 二进制取值范围 :11110(标识位) 000 00000000 00000000 00000000(保留位) ~ 11110(标识位) 111 11111111 11111111 11111111(保留位);

按照目的地址分类


IP 地址按目的地址分类: 
  • 单播地址:目的端为单个主机;
  • 广播地址:目的端是给定网络的所有主机;
  • 多播地址:目的端是同一组的所有主机;

域名系统

        尽管可以通过 IP 地址识别主机上的网络接口,进而访问主机,但是我们习惯于使用便于记忆的主机名。域名系统(DNS)可以提供 IP 地址和主机名之间的映射信息,它是一个分布的数据库。所以在应用程序中可以调用系统函数实现 IP 地址和主机名之间的转换。

封装

        当应用程序使用 TCP 传输数据时,数据被送入到协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层都要增加一些首部信息,因为方便根据这些首部信息确认数据属于哪一层或哪个协议,下面是应用程序使用 TCP 传输数据的过程:

《网络协议》TCP/IP 基本概述_第2张图片

分用

         分用: 目的主机在链路层接收到以太网数据帧时, 该数据就开始从协议栈中由底向上逐层上升,在每层都去掉该层的首部信息,并校验首部信息是否正确,该过程就是分用;

        发送数据:从应用层到链路层逐层加数据包是封装;接收数据:从链路层到应用层逐层解包是分用;

端口号

        端口号是在运输层配合 TCP 或 UDP 协议使用的,使 TCP 或 UDP 能识别主机应用程序,脱离这两个协议端口号将毫无用处;

数据相关概念

  • 包 :TCP / IP 协议中,每一层的数据都可以成为包;
  • 帧 (以太网数据帧):链路层包的单位;
  • 数据包 (IP数据报):网络层以上包的单位,IP 给链路层的数据包称为 IP 数据报 (IP datagram);
  • 段 (TCP 报文段) : TCP 数据包,TCP 传递给 IP 的数据包成为 TCP 报文段 (TCP segment);
  • 消息: 应用层的数据包;

参考资料:
《TCP/IP 详解》
《图解 TCP/IP》
《 TCP/IP基础》

你可能感兴趣的:(网络协议,tcp协议,IP协议)