网络基础编程主要介绍传输层中的TCP与UDP协议。TCP和UDP是两种不同的网络传输方式。
(1)概述
同其他任何协议栈一样,TCP向相邻的高层提供服务。因为TCP的上一层就是应用层,因此,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。应用程序通过编程调用TCP并使用TCP服务,提供需要准备发送的数据,用来区分接收数据应用的目的地址和端口号。
通常应用程序通过打开一个socket来使用TCP服务,TCP管理到其他socket的数据传递。可以说,通过IP的源/目的可以惟一的区分网络中两个设备的关联,通过socket的源/目的可以惟一的区分网络中两个应用程序的关联。
(2)三次握手协议
TCP对话通过三次握手来初始化的。三次握手的目的是使数据段的发送和接收同步,告诉其他主机其一次可接收的数据量,并建立虚连接。下面描述了这三次握手的简单过程。
初始化主机通过一个同步标志置位的数据段发出会话请求。
接收主机通过发回具有以下项目的数据段表示回复:同步标志置位、即将发送的数据段的起始字节的顺序号、应答并带有将收到的下一个数据段的字节顺序号。
请求主机再回送一个数据段,并带有确认顺序号和确认号。
TCP实体所采用的基本协议是滑动窗口协议。当发送方传送一个数据报时,它将启动计时器。当该数据报到达目的地后,接收方的TCP实体向回发送一个数据报,其中包含有一个确认序号,它意思是希望收到的下一个数据报的顺序号。如果发送方的定时器在确认信息到达之前超时,那么发送方会重发该数据报。
本文转载于唯C教育:【Linux基础】TCP
http://www.weicedu.com/forum.php?mod=viewthread&tid=292
(出处: http://www.weicedu.com/)
http://www.weicedu.com/forum.php?mod=viewthread&tid=292
(出处: http://www.weicedu.com/)