为什么会有TCP/IP协议?
为了让世界各地的电脑可以统一交流。注意TCP/IP并不是一个协议,而是一个协议族的统称。里面包括了IP协议、IMCP协议、TCP协议以及http、ftp、pop3等协议。
TCP/IP协议分层
应用层:包含http、ftp等协议。
传输层:包含TCP、UDP协议。
网络层:包含IP协议,负责对数据加上IP地址和其他数据以确定传输的目标。
数据链路层:为传输的数据加上以太网协议头,并进行CRC编码,为最后的数据传输做准备。
物理层:硬件层,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等。
基本常识
1、网络地址(IP地址):被分为四组的32byte的数字,IP地址包括网络号+主机号。
2、域名系统(DNS):是一个分布的数据库,负责将主机名(网址)转换成IP地址。
3、RFC:TCP/IP的标准文档。
4、端口号:用在TCP、UDP上的一个逻辑号码,并不是一个硬件端口,常说的把某某端口封掉实质上指在IP层次把带有这个号码的IP包过滤掉了而已。
5、应用编程接口:socket、LI
UDP和TCP协议
UDP协议:传输层协议,与TCP同一层,但是与TCP协议不同,UDP协议并不提供超时重传、出错重传等功能,就是说它是不可靠的协议。
TCP协议:TCP协议提供了一种可靠的数据传输服务,TCP是面向连接的,就是说在传输数据之前会先经历连接确认( 三次握手 )。而UDP是把数据直接发送出去,而不管对方是不是在收信,即使UDP无法到达,也不会产生差错报文。
TCP的流量控制和拥塞控制
流量控制:所谓的流量控制就是让发送方的发送速率不能太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。
TCP报文发送时机的选择:
1、TCP维持一个变量,它等于最大报文段长度MSS,只要缓存中存放的数据到达MSS字节就组装成一个TCP报文发送出去。
2、由发送方的应用程序指明要求发送报文段,即TCP支持的推送操作。
3、发送方计时器时限到了,这时就把当前已有的缓存装入报文段发送出去。
拥塞控制:
1、拥塞控制的原理:在某段时间,若对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变化,这种情况叫做拥塞。
2、拥塞控制和流量控制的差别:所谓的拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的只有一个前提,就是网络所能承受的网络负荷。
流量控制往往指点对点的通信量的控制,是端到端的问题。流量控制所要做的就是控制数据端所要发送数据的速率,以便使接收端来得及接收。
3、拥塞控制方法:慢开始、拥塞避免、快重传和快回复。