TCP/IP(二)

TCP 使用字节流通信,其中 TCP 段中的数据被视为没有记录或字段边界的字节序列。下表描述了 TCP 标头中的关键字段。

TCP 标头中的关键字段

功能

源端口

发送主机的 TCP 端口。

目标端口

目标主机的 TCP 端口。

序列号

TCP 段中数据的第一个字节的序列号。

确认编号

发送方希望接下来从连接的另一端接收的字节的序列号。

发送此 TCP 段以存储传入段的主机上 TCP 缓冲区的当前大小。

TCP 校验和

验证 TCP 标头和 TCP 数据的位级完整性。

TCP端口

TCP 端口提供用于传送 TCP 段的特定位置。低于 1024 的端口号是众所周知的端口,由互联网号码分配机构 (IANA) 分配。下表列出了一些众所周知的 TCP 端口。

众所周知的 TCP 端口

TCP 端口号 描述

20

FTP(数据通道)

21

FTP(控制通道)

23

远程登录

80

用于万维网的 HTTP

139

网络BIOS 会话服务

TCP/IP 应用程序接口

为了使应用程序以标准方式访问核心 TCP/IP 协议提供的服务,Windows Server 2003 等网络操作系统提供了行业标准的应用程序编程接口 (API)。API 是由应用程序代码以编程方式调用以执行网络功能的函数和命令集。例如,连接到网站的 Web 浏览器应用程序需要访问 TCP 的连接建立服务。

下图显示了两个常见的 TCP/IP API,Windows 套接字和 NetBIOS,以及它们与核心协议的关系。

用于 TCP/IP 的 API

windows套接字接口

Windows Sockets API 是 Windows Server 2003 下的标准 API,用于使用 TCP 和 UDP 的应用程序。写入 Windows Sockets API 的应用程序在许多版本的 TCP/IP 上运行。TCP/IP 实用程序和 SNMP 服务是写入 Windows 套接字接口的应用程序示例。

Windows 套接字提供的服务允许应用程序绑定到主机上的特定端口和 IP 地址、启动和接受连接、发送和接收数据以及关闭连接。有两种类型的套接字:

  • 流套接字使用 TCP 提供双向、可靠、有序且不重复的数据流。

  • 数据报套接字使用 UDP 提供单向或双向数据流。

套接字由主机上的协议和地址定义。地址的格式特定于每个协议。在 TCP/IP 中,地址是 IP 地址和端口的组合。两个套接字(连接两端各一个)形成双向通信路径。

为了进行通信,应用程序指定协议、目标主机的 IP 地址和目标应用程序的端口。连接应用程序后,可以发送和接收信息。

网络简介接口

NetBIOS 允许应用程序通过网络进行通信。NetBIOS 定义了两个实体:会话级接口和会话管理和数据传输协议。

NetBIOS 接口是用户应用程序向底层网络协议软件提交网络输入/输出 (I/O) 和控制指令的标准 API。使用 NetBIOS 接口 API 进行网络通信的应用程序可以在支持 NetBIOS 接口的任何协议软件上运行。

NetBIOS 还定义了一个在会话/传输级别运行的协议。这是由底层协议软件(如NetBIOS FramesProtocol NBFP——NetBEUI或NetBIOS over TCP/IP(NetBT)的一个组件)实现的,该软件执行适应NetBIOS接口命令集所需的网络I / O。基于 TCP/IP 的 NetBIOS 在 RFC 1001 和 1002 中定义。默认情况下启用 NetBT,但 Windows Server 2003 允许您为不包含基于 NetBIOS 的网络客户端或应用程序的环境禁用 NetBT。

NetBIOS 为 NetBIOS 名称管理、NetBIOS 数据报和 NetBIOS 会话提供命令和支持。

 

网络 BIOS 名称管理

NetBIOS 名称管理服务提供以下功能:

  • 名称注册和发布。当 TCP/IP 主机初始化时,它通过将 NetBIOS 名称注册请求广播或定向到 NetBIOS 名称服务器(如 WINS 服务器)来注册其 NetBIOS 名称。如果另一台主机注册了相同的 NetBIOS 名称,则该主机或 NetBIOS 名称服务器将以否定名称注册响应进行响应。因此,启动主机会收到初始化错误。当主机上的工作站服务停止时,当其他人尝试使用该名称时,主机将停止广播负名称注册响应,并将名称释放发送到 NetBIOS 名称服务器。据说 NetBIOS 名称已发布并可供另一台主机使用。

  • 名称解析。当一个 NetBIOS 应用程序想要与另一个 NetBIOS 应用程序通信时,必须解析 NetBIOS 应用程序的 IP 地址。NetBT 通过在本地网络上广播 NetBIOS 名称查询或将 NetBIOS 名称查询发送到 NetBIOS 名称服务器来执行此功能。

NetBIOS 名称服务使用 UDP 端口 137。

 

网络BIOS 数据报

NetBIOS 数据报服务提供无连接、无序和不可靠的数据报。数据报可以定向到特定的NetBIOS名称或广播到一组名称。传递是不可靠的,因为只有登录到网络的用户才能收到消息。数据报服务可以启动和接收广播消息和定向消息。NetBIOS 数据报服务使用 UDP 端口 138。

网络BIOS 会话

NetBIOS 会话服务提供面向连接、按顺序排列且可靠的 NetBIOS 消息的传递。NetBIOS 会话使用 TCP 连接并提供会话建立、保持连接和终止。NetBIOS 会话服务允许使用 TCP 端口 139 在两个方向上并发数据传输。

IPv4 寻址

对于 IP 版本 4,每个 TCP/IP 主机都由一个逻辑 IP 地址标识。IP 地址是网络层地址,不依赖于数据链路层地址(例如网络适配器的 MAC 地址)。使用 TCP/IP 进行通信的每个主机和网络组件都需要唯一的 IP 地址,可以手动分配,也可以使用动态主机配置协议 (DHCP) 进行分配。

IP 地址标识系统上的系统位置,就像街道地址标识城市街区上的房屋一样。正如街道地址必须标识唯一的住所一样,IP 地址对于互联网络必须是全局唯一的,并且具有统一的格式。

每个 IP 地址都包含一个网络 ID 和一个主机 ID。

  • 网络 ID(也称为网络地址)标识位于由 IP 路由器绑定的同一物理网络上的系统。同一物理网络上的所有系统必须具有相同的网络 ID。网络 ID 对于互联网络必须是唯一的。

  • 主机 ID(也称为主机地址)标识网络中的工作站、服务器、路由器或其他 TCP/IP 主机。主机地址对于网络 ID 必须是唯一的。

IPv4 地址语法

IP 地址由 32 位组成。标准做法是将 IPv4 地址的 32 位划分为四个称为八位字节的 2 位字段,而不是使用二进制表示法 (Base32) 一次表示 4 位。每个八位字节都转换为 8–10 之间的十进制数(以 0 为基数),并用句点(点)分隔。这种格式称为点分十进制表示法。下表提供了二进制和点分十进制格式的 IP 地址示例。

二进制和点分十进制格式的 IP 地址

二进制格式 点分十进制表示法
   

例如,4的 IPv11000000101010000000001100011000 地址为:

  • 分为 8 位块:11000000 10101000 00000011 00011000。

  • 每个块转换为十进制:192 168 3 24

  • 相邻的八位字节由句点分隔:192.168.3.24。

表示法 w.x.y.z 用于指代通用 IP 地址,如下图所示。

IPv4 地址的类型

互联网标准定义了以下类型的 IPv4 地址:

  • 单播。分配给位于网络上特定子网上的单个网络接口,用于一对一通信。

  • 多播。分配给位于网络上各个子网上的一个或多个网络接口,用于一对多通信。

  • 广播。分配给位于网络上子网上的所有网络接口,用于子网上的每个人之间的通信。

以下各节详细介绍了这些类型的地址。

IPv4 单播地址

IPv4 单播地址标识接口在网络上的位置,其方式与街道地址标识城市街区上的房屋的方式相同。正如街道地址必须标识唯一的住宅一样,IPv4 单播地址对于网络必须是全局唯一的,并且具有统一的格式。

每个 IPv4 单播地址都包含一个网络 ID 和一个主机 ID。

  • 网络 ID(也称为网络地址)是 IPv4 单播地址的固定部分,用于标识位于与 IPv4 路由器边界相同的物理或逻辑网段上的接口集。TCP/IP 网络上的网段也称为子网。同一物理或逻辑子网上的所有系统必须使用相同的网络 ID,并且该网络 ID 对于整个 TCP/IP 网络必须是唯一的。

  • 主机 ID(也称为主机地址)是 IPv4 单播地址的可变部分,用于标识子网上网络节点的接口。主机 ID 对于网络 ID 必须是唯一的。

如果网络 ID 对于 TCP/IP 网络是唯一的,并且主机 ID 对于网络 ID 是唯一的,则由网络 ID 和主机 ID 组成的整个 IPv4 单播地址对于整个 TCP/IP 网络都是唯一的。

IPv4 组播地址

IPv4 组播地址用于单数据包一对多传送。在启用了 IPv4 组播的 Intranet 上,寻址到 IPv4 组播地址的 IPv4 数据包由路由器转发到有主机侦听发送到 IPv4 组播地址的流量的子网。IPv4 组播为多种类型的通信提供高效的一对多传送服务。

IPv4 组播地址由 D 类因特网地址类定义:224.0.0.0/4。IPv4 组播地址的范围从 224.0.0.0 到 239.255.255.255。4.224.0.0/0 地址前缀(24.224.0.0 到 0.224.0.0)的 IPv255 组播地址保留用于本地子网组播流量。

IPv4 广播地址

IPv4 使用一组广播地址在子网传送服务上提供一对所有人。发送到 IPv4 广播地址的数据包由子网上的所有接口处理。以下是不同类型的 IPv4 广播地址:

  • 网络广播。通过将类地址前缀的所有主机位设置为 1 而形成。类网络 ID 131.107.0.0/16 的网络广播地址示例为 131.107.255.255。网络广播用于将数据包发送到有类网络的所有接口。IPv4 路由器不转发网络广播数据包。

  • 子网广播。通过将无类别地址前缀的所有主机位设置为 1 而形成。无类别网络 ID 131.107.26.0/24 的网络广播地址示例为 131.107.26.255。子网广播用于将数据包发送到无类别网络的所有主机。IPv4 路由器不转发子网广播数据包。对于类地址前缀,没有子网广播地址,只有网络广播地址。对于无类别地址前缀,没有网络广播地址,只有子网广播地址。

  • 全子网定向广播。通过将所有原始有类网络 ID 主机位设置为 1 作为无类别地址前缀而形成。将寻址到全子网定向广播的数据包定义为到达基于子网类的网络 ID 的所有子网上的所有主机。子网网络 ID 131.107.26.0/24 的全子网定向广播地址示例是 131.107.255.255。全子网定向广播是原始有类网络 ID 的网络广播地址。IPv4 路由器可以转发所有子网定向广播数据包,但是 RFC 1812 中不推荐使用全子网定向广播地址。

  • 有限播出。通过将 IPv32 地址的所有 4 位设置为 1 (255.255.255.255) 而形成。当本地网络 ID 未知时,受限广播地址用于本地子网上的一对一传送。IPv4 节点通常仅在自动配置过程(如引导协议 (BOOTP) 或 DHCP)期间使用有限的广播地址。例如,对于 DHCP,DHCP 客户端必须对发送的所有流量使用有限的广播地址,直到 DHCP 服务器确认使用了提供的 IPv4 地址配置。IPv4 路由器不转发有限的广播数据包。

互联网地址类

互联网社区最初定义了地址类,以适应不同类型的地址和不同大小的网络。地址类定义哪些位用于网络 ID,哪些位用于主机 ID。它还定义了可能的网络数和每个网络的主机数。在五个地址类别中,为 IPv4 单播地址定义了 A、B 和 C 类地址。D类地址定义为IPv4组播地址,E类地址定义为实验用途。

A类

A 类网络 ID 分配给具有大量主机的网络。A 类地址中的高阶位始终设置为零,这使得所有 A 类网络和地址的地址前缀为 0.0.0.0/1(或 0.0.0.0、128.0.0.0)。接下来的七位(完成第一个八位字节)用于枚举 A 类网络 ID。因此,A 类网络 ID 的地址前缀具有 8 位前缀长度(/8 或 255.0.0.0)。其余 24 位(最后三个八位字节)用于主机 ID。地址前缀 0.0.0.0/0(或 0.0.0.0、0.0.0.0)是保留的网络 ID,127.0.0.0/8(或 127.0.0.0、255.0.0.0)是为环回地址保留的。在总共 128 个可能的 A 类网络中,有 126 个网络,每个网络有 16,777,214 个主机。

注意

  • 保留全零和全一主机 ID

  • 枚举给定网络 ID 的主机 ID 时,将保留主机 ID 中的所有位设置为 0(全零主机 ID)和主机 ID 中的所有位设置为 1(全主机 ID)的两个主机 ID,不能分配给网络节点接口。因此,在上述计算中,A 类主机 ID 有 24 位,可能的主机 ID 总数为 16,777,216 (224)。减去两个预留主机 ID 时,可用主机 ID 总数为 16,777,214。

下图说明了 A 类地址的结构。

B类

B 类网络 ID 分配给大中型网络。B 类地址中的两个高阶位始终设置为 10,这使得所有 B 类网络和地址的地址前缀为 128.0.0.0/2(或 128.0.0.0、192.0.0.0)。接下来的 14 位(完成前两个八位组)用于枚举 B 类网络 ID。因此,B 类网络 ID 的地址前缀具有 16 位前缀长度(/16 或 255.255.0.0)。其余 16 位(最后两个八位字节)用于主机 ID。使用 14 位表示 B 类网络 ID,16 位表示主机 ID,这允许 16,384 个网络和每个网络 65,534 个主机。

下图说明了 B 类地址的结构。

文章链接: https://www.mfisp.com/21351.html

文章标题:TCP/IP(二)

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

TCP/IP

2023-6-16 15:24:22

建站教程

Python “%f“的具体用法:输出固定小数位的数字

2023-6-19 16:19:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠