tcp/ip分层模型由4个层次构成,即应用层、传输层、网际层和网络接口层。
传输层协议有tcp和udp。
tcp协议也就是传输控制协议,是整个tcp/ip协议簇中最重要的协议之一,它在IP提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。其最主要和最重要的是tcp采用了一种叫重发的技术,具体的说,在tcp传输过程中,发送方启动一个定时器,然后将数据包发出,当接收方接收到这个信息后就给发送方发一个确认信息,而如果发送方在定时器到店之前没有收到这个确认信息,就重新发送这个数据包。利用TCP在源主机想和目的主机之间建立和挂你连接操作时,均需要通过三次握手来确认建立和关闭是否成功。
TCP建立连接的三次握手过程如下:
(1)源主机发送一个SYN(同步)标志为1的TCP数据包,表示想与目标主机进行通信,并发送一个同步序列号(如SEQ=200)进行同步。
(2)目标主机愿意进行通信,则相应一个确认(ACK位置1)。并以下一个序列号为参考进行确认(如201).
(3)源主机以确认来响应目标主机的TCP包,这个确认中包括它想要接收的下一个序列号(该帧可以含有发送的数据)。至此连接建立完成。
同样关闭连接也需要进行三次握手。
UDP协议:
udp协议也就是用户数据协议,是一种不可靠的,无连接的协议,可以保证应用程序进程间的通讯。udp协议软件的主要作用就是将UDP消息展示给应用层,它并不负责重新发送丢失的或出错的数据消息,不对接收到的无序IP数据报重新排序,不消除重复发IP数据报,不对已接收到数据报进行确认,也不负责建立或终止连接;而这些问题是由使用UDP进行通讯的应用程序负责处理问题。
tcp和udp的区别:
udp是一种无连接的协议,错误检测率比较弱,有高速率的传输速度;要进行错误检测或不需要错误检测的应用程序(如dns,SNMP等)使用UDP协议。
tcp提供可靠性,是一种面向连接的协议,必须支持交互式会话的应用程序(如FTP等)往往使用tcp协议。