计算机网络之TCP/IP协议栈

来源:互联网 发布:电影矩阵 编辑:程序博客网 时间:2024/05/17 00:55
一,协议栈
应用层 HTTP FTP TELNET, SMTP, DNS, ECHO, NTP, SNMP, BOOTP...
传输层TCP UDP
互联层 IP ICMP [ARP IGMP]
网络接口层 以太网 令牌环 FDDI

从服务的观点看即
应用服务
可靠的传输服务
无连接交付服务

不同计算机上可能运行的协议:
  • 一个简单的路由器上可能会实现ARP, IP, ICMP, UDP, SNMP, RIP。
  • WWW用户端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
  • 一台用户电脑上还会运行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NTP。
  • 无盘设备可能会在固件比如ROM中实现了ARP, IP, ICMP, UDP, BOOT, TFTP (均为面向数据报的协议,实现起来相对简单)

二,网络接口层:
该层中的协议提供了数据传送的方法,使得系统可以通过连接的网络将数据传送到其它设备,并定义了如何利用网络来传送IP数据报。
物理网络上传输的单元是一个包含首部和数据的祯,首部包含的是物理源地址。
2.1

2.7

三,互联层:
3.1 IP
3.1.1 IP主要完成以下任务:
定义数据报,数据报是Internet中传输的基本单元。
定义Internet地址系统。
给远端主机的数据报指定路由。
把数据报分解或重组成易于在网络中传输的结构。
在网络存取层和传输层之间传递数据。

3.1.2 IP数据报
IP报格式
版本   首部长度 服务类型 总长度
标识                      标志  片偏移量
寿命        协议          首部校验和
源IP地址
目的IP地址
IP选项                                          填充
数据
...3.1.3 分片与MTU

3.1.4 路由



3.2 ICMP
ICMP主要用于收集有关网络的信息查找错误等工作。


3.3 ARP

要为数据报确定一个目的地址,就必须检查ARP缓存表。

ARP工作流程:
解释本地IP地址:
(1)当一台主机要与别的主机通信时,初始化ARP请求。当该IP断定IP地址是本地时,源主机在ARP缓存中查找目标主机的硬件地址。

  (2)要是找不到映射的话,ARP建立一个请求,源主机IP地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。

  (3)本地网上的每个主机都收到广播并寻找相符的IP地址。

  (4)当目标主机断定请求中的IP地址与自己的相符时,直接发送一个ARP答复,将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP缓存。源主机收到回答后便建立起了通信。


解析远程IP地址

  不同网络中的主机互相通信,ARP广播的是源主机的缺省网关。

  目标IP地址是一个远程网络主机的话,ARP将广播一个路由器的地址。

  (1)通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中查找,若无,源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关记录的IP地址(硬件地址)。

  (2)若没找到该网关的记录,ARP将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主机。

  (3)在路由器上,由IP决定目标IP地址是本地还是远程。如果是本地,路由器用ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标主机。

  (4)目标主机收到请求后,形成ICMP响应。因源主机在远程网上,将在本地路由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。

  (5)如果此网关的硬件地址不在ARP缓存中,通过ARP广播获得。一旦它获得硬件地址,ICMP响应就送到路由器上,然后传到源主机


四,传输层:
4.1 TCP
4.1.1

TCP是一种可靠的、面向连接的、字节流协议,它利用端到端错误检测与纠正功能提供可靠的数据传输服务,因为它能验证数据在网络上是否以合适的序列正确地传输;


4.1.2 TCP报文段

源端口            目的端口
序号
确认号
首部长度 保留未用  码元比特  窗口
校验和                          紧急指针
选项                             填充
数据
...

4.1.3

三次握手



四次握手


4.1.4

滑动窗口


4.2 UDP

UDP是一个不可靠的无连接数据报协议,就像IP一样,它能为应用程序提供低开销的无连接数据报传输服务。



五,应用层:
推荐协议:
  • TELNET (Teletype over the Network, 网络电传) ,通过一个终端(terminal)登陆到网络(运行在TCP协议上)。
  • FTP (File Transfer Protocol, 文件传输协议) ,由名知义(运行在TCP协议上)
  • SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件(运行在TCP协议上) 。
  • DNS (Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上) 。
  • ECHO (Echo Protocol, 回绕协议) ,用于查错及测量应答时间(运行在TCP和UDP协议上) 。
  • NTP (Network Time Protocol,网络时间协议) ,用于网络同步(运行在UDP协议上) 。
  • SNMP (Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理。
  • BOOTP (Boot Protocol,启动协议) ,应用于无盘设备(运行在UDP协议上)。
六, 其他
6.1 IPv4的缺陷
地址只有32位,IP地址空间有限;
不支持服务等级(Quality of Service, Qos)的想法,无法管理带宽和优先级,故而不能很好的支持现今越来越多的实时的语音和视频应用。因此IPv6 (IP Version 6, IP版本六) 浮出海面,用以取代IPv4
http://www.softhouse.com.cn/news/show/4281.html
http://blog.icxo.com/read.jsp?aid=55484&uid=19437


原创粉丝点击