《TCP/IP详解 卷1:协议》读书笔记 第1章 概述

一、分层

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。
TCP/IP通常被认为是一个四层协议系统:

  1. 应用层
    负责处理特定的应用程序细节。
  2. 运输层
    主要为两台主机上的应用程序提供端到端的通信。
  3. 网络层(互联网层)
    处理分组在网络中的活动。
  4. 链路层(数据链路层、网络接口层)
    通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。一起处理与电缆(或其他任何传输媒介的物理接口细节)

下图为TCP/IP协议族的四个层次以及常见的协议:
《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第1张图片


局域网上运行FTP的两台主机

《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第2张图片

  • 大多数的网络应用程序都被设计成客户-服务器模式。
  • 在同一层上,双方都可以有一个或多个协议进行通信。
  • 应用层通常是一个用户进程,而下三层一般在操作系统内核中执行。
  • 应用层关心的是应用程序的细节;下三层对应用层一无所知,它们负责处理所有的通信细节。
  • TCP/IP协议族是一组不同的协议组合在一起构成的协议族,TCP/IP只是其中的两种协议而已。

通过路由器连接的两个网络

《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第3张图片
网络通过路由器进行连接,形成互联网。路由器是网关,但是网关不一定是路由器。
应用层和运输层使用端到端(End-to-End)协议,网络层使用逐跳(Hop-by-hop)协议,两个端系统和每个中建系统都要使用它。(从第3章IP协议可以更好理解,在IP选路的过程中,选路表中只有下一跳的IP地址,只能一个一个地往目的地跳,所以称为逐跳)

  • 网络层IP提供的是一种不可靠的服务。它尽可能快地把数据发送到目的地,但是不提供任何可靠性保证。
  • TCP提供的是可靠的服务,采用了超时重传、发送和接收端到端的确认分组等机制。
  • 所以让网络层尽快传送数据,然后到了传输层再来检测对错咯。
  • 路由器具有多个网络接口层(链路层),任何具有多个接口的系统,称为多接口的。一个主机也可以有多个接口。大多数的TCP/IP实现也允许一个多接口主机来但当路由器的功能(需要进行特殊配置)。

连接网络的另一个途径是使用网桥,与路由器的区别:
链路层——网桥
网络层——路由器
TCP/IP更倾向于使用路由器来连接网络。


二、TCP/IP的分层

TCP/IP协议中不同层次的协议:
《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第4张图片

  • TCP和UDP是两种最为著名的运输层协议,都是用IP作为网络层协议。
  • UDP是不可靠的,它不能保证数据包安全无误地到达最终目的。
  • TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
  • ICMP是IP协议的负数协议。IP层用它来与其它主机或路由器交换错误报文和其他重要信息。
  • IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

三、互联网的地址

互联网上的每个接口都必须有一个唯一的IP地址。IP地址长32bit。
有五类不同的互联网地址格式:
《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第5张图片
32位的IP地址通常写成4个十进制数的形式,每个整数对应一个字节——点分十进制表示法。
多接口主机具有多个IP地址,其中每个接口都对应一个IP地址。
互联网络信息中心(InterNIC)负责分配IP地址,但是它只分配网络号。(跟子网有关,别人只知道你的网络号,你的主机号由内网的管理员来分配。)

各类IP地址有一个范围:
《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第6张图片


四、域名系统

人们可以通过IP地址或主机名来访问一台主机,不过人们更喜欢主机名。
DNS是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。


五、封装

实际上数据是通过链路层传到其他网络的,那么数据从应用程序一直往下,通过4个层,每一层都给数据添加一些首部(尾部)信息。这就叫封装。下图为封装的过程:
《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第7张图片

TCP传给IP的数据单元:TCP报文段(TCP segment)
UDP传给IP的数据单元:UDP数据报(UDP datagram)
IP传给网络接口层的数据单元:IP数据报(IP datagram)
以太网传输的比特流:帧(Frame),长度必须在46~1500字节之间。(涉及到MTU最大传输单位)

每一层的首部信息中,都会包含上一层的标识,以标识上一层的协议。


六、分用

分用与封装对应:当主机收到一个以太网数据帧的时候,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。

《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第8张图片


七、客户-服务器模型(Client-Server)

  • 重复型:服务器处理一个客户请求的时候,不能为其他客户机提供服务。
  • 并发型:利用生成其他服务器的方法来处理客户的请求。
  • TCP服务器是并发的,UDP服务器是重复的。

八、端口号

  • 服务器一般都是通过知名端口号来识别的,知名端口号介于1~255之间,256~1023之间的端口号通常由Unix系统占用。
  • 而客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上市唯一的就可以了。客户端口号又称临时端口号。
  • 大多数TCP/IP实现给临时端口分配1024~5000.

保留端口号
Unix系统有保留端口号,具有超级用户特权的进程才能够分配。介于1~1023之间。


九、标准的简单服务

《TCP/IP详解 卷1:协议》读书笔记 第1章 概述_第9张图片

  • 当使用TCP和UDP提供相同的服务时,一般选择相同的端口号。
  • 这些端口都是奇数的。
    因为这些端口号都是从NCP(TCP前身)端口号派生出来的,NCP是单工的,不是双全工的,因此每个应用程序需要两个连接,需预留一对奇数和偶数端口号。而现在TCP和UDP只需要一个端口号,因此用了奇数。

十、应用编程接口

常用:socker和TLI(运输层接口:Transport Layer Interface)

你可能感兴趣的:(计算机网络)