赞
踩
前面我们介绍了网络层的IP协议、ICMP协议、ARP协议,后续给大家介绍下传输层的TCP和UDP协议。今天先讲讲TCP协议。
本篇文章概要:
正文
我们知道TCP是传输层协议,用于为应用层提供服务,通过端口号可以唯一标识一个应用。
1
什么是TCP?
TCP 是面向连接的,提供端到端可靠性服务的传输层协议。
面向连接中通信中,会在在两个端点之间建立了一条可靠的数据通信信道。
电话就是一种面向连接的服务,双方建立连接后才能够通话,可以确保对方听到你说话;而发短信就不是一种面向连接的服务,你随时可以发送短信,但是不能确保对方及时收到。
保证从发送端发送的报文都可以被目的端收到,哪怕被丢弃,也可以让发送端重传;
2
为什么需要TCP,TCP可以解决什么问题?
IP 层是「不可靠」的,它只负责数据包的发送,但它不保证数据包能够被接收、不保证网络包的按序交付、也不保证网络包中的数据的完整性。
如果需要保障网络数据包的可靠性,那么就需要由上层(传输层)的 TCP 协议来负责。
因为 TCP 是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。后续会讲TCP协议是如何确保数据包的可靠传输的?
3
TCP报文格式
我们知道待发送的数据是根据TCP/IP四层模型层层封装的,那么TCP协议是如何封装的?下面我们看下TCP的报文格式。
如图所示为TCP报文头格式。
TCP数据段由TCP Header(头部)和TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节。
1、16位源端口号:源主机的应用程序使用的端口号。
2、16位目的端口号:目的主机的应用程序使用的端口号。每个TCP头部都包含源和目的端的端口号,这两个值加上IP头部中的源IP地址和目的IP地址可以唯一确定一个TCP连接。
TCP允许一个主机同时运行多个应用进程。每台主机可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。