jason--liu/Blog

C/S,TCP初谈

jason--liu opened this issue · 0 comments

客户端与服务端概念

数据总在两端传输,其中一端是客户端,另一端就是服务端。
数据通讯总有一方要先发起数据包,发起第一个数据包的就是客户端,被动接收这个数据包的就是服务端。既然服务器是被动连接的,那客户端就必须知道服务端的地址。客户端要访问一个服务器至少要知道服务器的IP地址端口号

网络模型

OSI七层网络模型

ISO(国际标准化组织)于1985年研究出的网络互联模型。
image
实际上就是把要发送的数据裹7层,然后再发送的网络上去。

TCP/IP四层模型

TCP:Transfer Control Protocol [传输控制协议]
IP:Internet Protocol [网际协议]
TCP/IP实际是一组协议的代名词,不仅仅是一个协议
TCP/IP协议族中的每一层都对应一个协议。

TCP/IP和OSI网络模型对应关系
image
可以看到TCP/IP和OSI是有对应关系的

应用程序发送一个数据包流程
image
可以看到应用程序(应用层)发送一个数据后经过传输层,网络层,最后再经过链路层发送到网络中去。

数据帧的封装
image
用户数据abc再发送出去后,操作系统会先依次封装TCP头(传输层),IP头(网络层),以太网帧头和以太网帧尾(链路层),最后再发送到网络上。

TCP和UDP区别

TCP协议:可靠的面向连接的协议;数据包丢失的话操作系统底层会感知并且会重新发送数据包;
UDP协议:不可靠的,无连接的协议;
优缺点:
tcp:可靠协议,必然要耗费更多的系统资源确保数据传输的可靠;
得到好处就是只要不断线,传输给对方的数据,一定正确的,不丢失,不重复,按顺序到达对端;
udp:不可靠协议;发送速度特别快;但无法确保数据可靠性