TCP与IP

TCP/IP协议简介

TCP/IP(Transmission ControlProtocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议

在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是"网际网",它实际上就是将全球各地的局域网连接起来而形成的一个"网之间的网(即网际网)"。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的"世界语"。


应用层协议:

应用层 向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能

Telnet:提供远程登录(终端仿真)服务,好象比较古老的BBS就是用的这个登陆。

FTP :提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务;

SMTP:不用说拉,天天用到的电子邮件协议。

TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。

SNTP:简单网络管理协议。看名字就不用说什么含义了吧。

DNS:域名解析服务,也就是如何将域名映射城IP地址的协议。

HTTP:超文本传输协议

TCP 协议:

TCP提供一种面向连接的带确认的可靠的有序的带流控的端到端的数据流服务,TCP传输单位为报文段

•   应用数据被分割为TCP认为最适合发送的数据块

•   TCP发出一个报文段后启动一个定时器,如超时仍无确认则重发

•   TCP收到一个报文段后会返回一个确认

•   TCP会保持端到端的首部和数据的检验和

•   IP数据报的到达可能是无序的,TCP对收到的数据进行重排序

•   IP数据报可能发生重复,TCP会丢弃重复的数据

•   TCP提供流量控制,只允许发送端发出接收端可以接受的数据

TCP数据段格式:

 

各字段的说明:

•   端口号:对应应用进程

•   序号:标识TCP发端向TCP收端发送的数据字节流,表示在这个报文段中的顺序号(字节),达到232-1后又从0开始

•   确认号:序号+1,即要求发端发送下一段

•   首部长度:首部中32位字的数目

•   6个标志位

–  URG:紧急指针有效

–  ACK:确认号有效

–  PSH:接收方应尽快将此段交给应用层

–  RST:重建连接

–  SYN:用来发起一个连接

–  FIN:发端完成发送任务

•   窗口大小:窗口的字节数

•   检验和:包括整个TCP报文段

•   紧急指针:仅当URG标志置1时有效

•   选项:最大报文长度、窗口扩大、时间戳等

TCP三次握手的建立:

用wireShark软件抓取的三次握手的过程:


服务器确认收到数据(看psh,以及len,len为数据的长度):


UDP 用户数据报协议:

UDP是一个简单的面向数据报的传输协议

•   UDP数据报也是被封装成一个IP数据报的

•   UDP不提供可靠性,它把应用程序的数据传给IP层转发出去,并不保证数据可以到达目的地

•   UDP的可靠性是由其上层保证的

格式:


UDP端口号:指明应用进程,注意,TCP的端口号由TCP查看,UDP端口号由UDP查看,二者是相互独立的

•   长度:包括首部和数据

•   检验和:包括首部和数据

IP:网际协议

IP是TCP/IP协议族中最为核心的协议,所有TCP、UDP、ICMP等数据均以IP数据报格式传输,IP是面向无连接的提供不可靠的、尽力而为的不保证送达

无连接:IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的,发送、接收顺序是随意的,每个数据报可以单独选路。

不可靠:IP不保证数据报能成功地到达目的地,它只提供最好的传输服务,发生错误时,丢弃该数据报,并向源端发ICMP消息。

IP的任务:

定义IP地址:4字节的接口地址,全球唯一地定义一个网络接口

•   定义IP数据报格式

•   为IP数据报选路:路由功能,为要传送的数据报选择最佳传输路径

•   转发IP数据报:传输功能,提供面向无连接的尽力而为的不保证送达

•   网络最终能实现什么功能由用户决定,试图通过网络内在智能增强的做法是多余的。

格式:

•   版本号:目前的IPv4为4,IPv6为6

•   首部长度:首部占32位字的数目

•   服务类型:3位优先权,4位TOS(最小时延,最大吞吐量,最高可靠性,最小费用,全0为一般服务),1位未用但必须置0

•   总长度:整个IP数据报的长度,以字节为单位,最大为65535字节,但它在传送时链路层回对它分片,而主机也会对数据报长度加以限制

•   标识:唯一地标识主机发出的每一份数据报,通常每发一份该值加一

•   标志:第1位保留,第2位为不分段位,第3位为0时为最后一个分片

•   片偏移:分片在原始报文中的偏移量

•   协议:根据它可以识别是哪个协议向IP传送数据

•   TTL:设置了数据报可以经过的最多路由器数,每经过一台路由器,该值减1,当该值为0时,数据报被丢弃

•   首部检验和:根据首部计算的检验和,不对数据部分作检验和

•   选项:可变长的选项信息,包括

•   安全和处理限制:用于军事领域

•   记录路径:让每个路由器都留下它的IP地址

•   时间戳:让每个路由器留下它的IP地址和时间

•   源站选路:为数据报指定一系列必须经过的IP地址

•   选项很少使用,有些机器和路由器不支持这些选项

猜你喜欢

转载自blog.csdn.net/chengjianghao/article/details/79768790