在了解TCP和UDP之前,我们先了解TCP/IP协议族,首先这个协议族的的由来,在一开始很多电脑表达一个消息的方法可谓是多种多样,因为它们运行着完全不同的操作系统,这就像有不同口音,说不同语言的人聚在了一起一样,语言的不通使得他们没有办法在一起合作。使用计算机的人也想要实现计算机间的交互,因为单个计算机的工作并不会发挥太大的作用,只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。
简单的连接在一起当然是远远不够的,它还需要一些共通的东西来交流,为此TCP/IP协议族就诞生了。在TCP与IP协议族里有很多协议,比如TCP协议、UDP协议、IP协议、FTP协议等等。计算机有了这些协议,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。接着为大家介绍它的分层结构如下图:
我们可以看到TCP/IP协议族四层分层依次是:链路层、网络层、传输层、应用层。
应用层:
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
传输层:
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
网络层 :
负责相邻计算机之间的通信。其功能包括三方面。
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
三、处理路径、流控、拥塞等问题。
链路层:
这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
在为大家介绍完TCP/IP协议后,我们就要来介绍TCP和UDP协议了。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程