tcp/ip总结

一、概述

TCP/IP是用于计算机通信的一组协议,通常称它为TCP/IP协议簇,是Internet组建的基础,正是因为TCP/IP协议是Internet所采用的协议,所以TCP/IP是我们进行网络通信程序设计时需要理解的必要知识。

它是一个网络体系结构,也是一套协议标准。

OSI模型(主要用于理论研究)有7层结构,TCP/IP模型有4层结构(有些书籍将其分为5层,即网络接口层由链路层和物理层组成)。如下图:

image

从图中我们可以看出其一一对应的关系。 

简要介绍一下TCP/IP的各个层次模型:

(1)网络接口层,模型的基层,负责数据帧的发送和接收(帧,frame,是独立的网络信息传输单元)。网络接口负责将IP分组封装成帧格式在物理网络上传输,或,从物理网络中接收到的帧解封,取出IP分组交给上层网络层。

(2)网络层(互联层),将数据包封装成IP数据包(添加上头部,IP地址),并运行必要的路由算法,有效找到达到目的主机的最优路由。包括

  • IPv4,IPv6
  • ICMP(Internet Control Message Protocol,Internet控制报文协议),用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,PING命令就是使用ICMP协议。
  • IGMP(Internet Group Management Protocol,互联组管理协议),负责IP 组播成员管理的协议,它用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。<http://blog.chinaunix.net/uid-26527046-id-3507272.html>
  • ARP(Address Resolution Protocol,地址转换协议),RARP(Reverse Address Resolution Protocol,反向地址转换协议)将网络中的每台主机IP地址和MAC地址形成映射,核心:ARP请求(局域网内部广播),ARP缓存(动态生命周期和静态生命周期)。相关的有ARP命令,可以查看(或增删)ARP缓存中的地址映射表。

只有IP协议具有全网的寻址能力,ICMP通信时需要通过IP封装,ARP是一个局域网内的广播协议,无需IP封装。

(3)传输层,这一次层负责传输数据,保证数据送达。

  • TCP(transmission control protocol),面向连接,可靠的传输
  • UDP(user datagram protocol),无连接,不可靠传输

(4)应用层,应用程序通过这一层来访问网络。有如下面向应用的协议。

  • Telnet
  • FTP, TFTP
  • HTTP,HTTPS
  • DHCP/BootP
  • DNS
  • SMTP
  • SNMP

网络接口层,MAC地址在物理上唯一地标识一台主机;

IP层,IP地址在逻辑上唯一地标识一台主机;

传输层,端口在主机内唯一地标识运行进程。

 

二、TCP  & UDP

(1)TCP

说到TCP协议,首先要联想到几个关键词:面向连接、可靠传输,建立连接三次握手,关闭连接四次握手,重发机制,流量控制等

优点:安全可靠,有序,包丢失可以要求重传,可以进行流量控制。

适合于大量数据的传输。

1.  TCP协议首部格式

clip_image002

TCP的首部格式图上图所示:

---Source Port是源端口,16位。

---Destination Port是目的端口,16位。

---Sequence Number是发送数据包中的第一个字节的序列号,32位。

---Acknowledgment Number是确认序列号,32位。

---Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。[1]

---标志位: 6位,URG表示Urgent Pointer字段有意义:

ACK表示Acknowledgment Number字段有意义

PSH表示Push功能,RST表示复位TCP连接

SYN表示SYN报文(在建立TCP连接的时候使用)

FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)

---Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。

---Checksum是校验和,16位。

---Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。

 

2.  建立连接

下图是TCP建立连接的三次握手示意图:

建立连接

 

3.  关闭连接

下面是TCP关闭连接而进行的四次握手,当然如果主机A和B同时关闭也可能存在三次握手。

关闭进行四次握手主要是因为TCP是全双工的通信方式,当一端主动关闭连接时,它还是可以接收另一端的数据,这时称为“半关闭”,直到另一端数据传输完毕也请求关闭。

关闭连接

 

(2)UDP

关键词:无连接,不可靠。

优点是灵活并且迅速;

缺点是不能防止报文的丢失,重复或失序;

适合于传输数据量比较小的数据。

posted @ 2015-05-08 16:32  Shayla  阅读(226)  评论(0编辑  收藏  举报