您的位置:首页 > 理论基础 > 计算机网络

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

2016-08-05 16:02 686 查看

一、分层

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。

TCP/IP通常被认为是一个四层协议系统:

应用层

负责处理特定的应用程序细节。

运输层

主要为两台主机上的应用程序提供端到端的通信。

网络层(互联网层)

处理分组在网络中的活动。

链路层(数据链路层、网络接口层)

通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。一起处理与电缆(或其他任何传输媒介的物理接口细节)

下图为TCP/IP协议族的四个层次以及常见的协议:



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



大多数的网络应用程序都被设计成客户-服务器模式。

在同一层上,双方都可以有一个或多个协议进行通信。

应用层通常是一个用户进程,而下三层一般在操作系统内核中执行。

应用层关心的是应用程序的细节;下三层对应用层一无所知,它们负责处理所有的通信细节。

TCP/IP协议族是一组不同的协议组合在一起构成的协议族,TCP/IP只是其中的两种协议而已。

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



网络通过路由器进行连接,形成互联网。路由器是网关,但是网关不一定是路由器。

应用层和运输层使用端到端(End-to-End)协议,网络层使用逐跳(Hop-by-hop)协议,两个端系统和每个中建系统都要使用它。(从第3章IP协议可以更好理解,在IP选路的过程中,选路表中只有下一跳的IP地址,只能一个一个地往目的地跳,所以称为逐跳)

网络层IP提供的是一种不可靠的服务。它尽可能快地把数据发送到目的地,但是不提供任何可靠性保证。

TCP提供的是可靠的服务,采用了超时重传、发送和接收端到端的确认分组等机制。

所以让网络层尽快传送数据,然后到了传输层再来检测对错咯。

路由器具有多个网络接口层(链路层),任何具有多个接口的系统,称为多接口的。一个主机也可以有多个接口。大多数的TCP/IP实现也允许一个多接口主机来但当路由器的功能(需要进行特殊配置)。

连接网络的另一个途径是使用网桥,与路由器的区别:

链路层——网桥

网络层——路由器

TCP/IP更倾向于使用路由器来连接网络。

二、TCP/IP的分层

TCP/IP协议中不同层次的协议:



TCP和UDP是两种最为著名的运输层协议,都是用IP作为网络层协议。

UDP是不可靠的,它不能保证数据包安全无误地到达最终目的。

TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

ICMP是IP协议的负数协议。IP层用它来与其它主机或路由器交换错误报文和其他重要信息。

IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

三、互联网的地址

互联网上的每个接口都必须有一个唯一的IP地址。IP地址长32bit。

有五类不同的互联网地址格式:



32位的IP地址通常写成4个十进制数的形式,每个整数对应一个字节——点分十进制表示法。

多接口主机具有多个IP地址,其中每个接口都对应一个IP地址。

互联网络信息中心(InterNIC)负责分配IP地址,但是它只分配网络号。(跟子网有关,别人只知道你的网络号,你的主机号由内网的管理员来分配。)

各类IP地址有一个范围:



四、域名系统

人们可以通过IP地址或主机名来访问一台主机,不过人们更喜欢主机名。

DNS是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

五、封装

实际上数据是通过链路层传到其他网络的,那么数据从应用程序一直往下,通过4个层,每一层都给数据添加一些首部(尾部)信息。这就叫封装。下图为封装的过程:



TCP传给IP的数据单元:TCP报文段(TCP segment)

UDP传给IP的数据单元:UDP数据报(UDP datagram)

IP传给网络接口层的数据单元:IP数据报(IP datagram)

以太网传输的比特流:帧(Frame),长度必须在46~1500字节之间。(涉及到MTU最大传输单位)

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

六、分用

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



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

重复型:服务器处理一个客户请求的时候,不能为其他客户机提供服务。

并发型:利用生成其他服务器的方法来处理客户的请求。

TCP服务器是并发的,UDP服务器是重复的。

八、端口号

服务器一般都是通过知名端口号来识别的,知名端口号介于1~255之间,256~1023之间的端口号通常由Unix系统占用。

而客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上市唯一的就可以了。客户端口号又称临时端口号。

大多数TCP/IP实现给临时端口分配1024~5000.

保留端口号

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

九、标准的简单服务



当使用TCP和UDP提供相同的服务时,一般选择相同的端口号。

这些端口都是奇数的。

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

十、应用编程接口

常用:socker和TLI(运输层接口:Transport Layer Interface)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息