Skip to content

Latest commit

 

History

History
70 lines (37 loc) · 2.57 KB

tcpipxiang_jie_juan_4e003a_xie_yi.md

File metadata and controls

70 lines (37 loc) · 2.57 KB

TCP/IP详解 卷一: 协议

1. 概述

TCP/IP协议族的四个层次

  1. 应用层: Telnet FTP e-mail等
  2. 运输层: TCP和UDP
  3. 网络层: IP、ICMP和IGMP
  4. 链路层: 设备驱动程序及接口卡

TCP为两台主机提供高可高性的数据通信,它所做的工作包括

  1. 把应用程序交给他们的数据分成合适的小块交给下面的网络层,确定接收到分组,设置发送最后确认分组的超时时钟等
  2. 因为TCP运输层提供了高可靠性的端到端的通信,所以应用层可以忽略这些细节

而UDP则为应用层提供一种非常简单的服务,它只是把称作数据报的分组从一台数据发送到另一台数据,但不保证该数据报能到达另一端.任何必须的可靠性必须由应用层来提供

为什么要区分运输层和网络层?

网络层的IP提供的是不可靠的服务,它只是尽可能快的地把分组从源节点运输到目的节点,不提供任何可靠的保证

而运输层的TCP协议,采用了超时重传,发送和接受端到端的确认分组机制

因为有TCP UDP ICMP 和IGMP都要给IP传送数据

所以IP必须在首部添加一个长度为8bit的数值,称为协议域

  1. 1 表示ICMP
  2. 2 表示IGMP
  3. 6 表示TCP
  4. 17 表示UDP

类似的,还有很多程序试用TCP或UDP传送数据

所以运输层协议在生成报文首部时要存入一个应用程序的标识符

TCP和UDP都用一个16bit的端口号表示不同的应用程序

TCP和UDP把源端口号和目标端口号分别存入报文首部中

链路层(网络接口)分别要发送和接收IP ARP PARP数据,所以也必须在以太网的帧首部加入某种形式的标识,以表明生成数据的网络层协议

为此,以太网的帧首部也有一个16bit的帧类型域

1.7 分用

当目标主机收到一个以太网数据时,数据开始由底往上升,同时去掉各层协议加上的报文首部,每层协议盒要去检查报文首部的协议标识,以确定接收数据的上层协议,这个过程叫做分用

1.8 客户-服务器模型

这种服务分为两种类型

  1. 重复型: 等待请求-处理请求-发送响应-等待请求(只能同时处理一个请求),一般UDP方式
  2. 并发型: 等待请求-开启进程/线程(取决操作系统)处理请求,处理结束后,终止进程/线程-等待请求,一般TCP方式

1.17 总结

网络层和运输层之间区别是最关键的: 网络层(IP)提供的是点到点服务,而运输层(TCP/UDP)提供的是端到端的服务

2.链路层

参考链接

  1. 电子版: http://wweir.github.io/it/TCP_IP%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3.html