TCP/IP

来源:互联网 发布:淘宝商品买的下架了 编辑:程序博客网 时间:2024/05/07 01:06

           一、TCP/IP(Transmission Control Protocol / Interent Protocol)

          

          是针对因特网的通信协议,定义了电子设备(例如计算机)如何接入因特网,以及数据如何在他们之间传输的标准。通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。

          

          (1) TCP/IP内部有一系列用于处理数据通信的协议:

           1、TCP(传输控制协议)-应用程序之间通信

           2、UDP(用户数据包协议)-应用程序之间的简单通信

           3、ICMP(因特网消息控制协议)-针对错误和状态

           4、DHCP(动态主机配置协议)-用于想网络中的计算机分配动态IP地址。 

           5、IP(国际协议)-计算机之间的通信

           6、HTTP(超文本传输协议)-负责web网站与web浏览器之间的通信,用于从web客户端(浏览器)想web服务器发送请求,并从web服务器想web客户端返回内容(网页)。

           7、HTTPS(安全的HTTP)-负责web网站与web浏览器之间的安全通信,会用于信用卡交易和其他的敏感数据。

           8、SSL(安全套接字层)-为安全数据传输加密数据。

           9、SMTP(简易邮件传输协议)-用于电子邮件的传输。

           10、MIME(多用途因特网邮件扩展)-使SMTP又能力传输多媒体文件,包括声音、视频和二进制数据。

           11、IMAP(因特网消息访问协议)-用于存储和取回电子邮件。

           12、POP(邮局协议)-用于从电子邮件服务器向个人电脑下载电子邮件。

           13、NTP(网络事件协议)-用于在计算机之间同步时间。

           14、SNMP(简单网络管理协议)-用于计算机网络的管理。

           15、LDAP(轻量级的目录访问协议)-用于cons因特网搜集关于用户和电子邮件地址的信息。

           16、ARP(Adress Resolution Protocol)-通过IP查找基于IP地址的计算机网卡的硬件地址。

           17、RARP(Resolution Adress Resolution Protocol)-通过IP查找基于硬件地址的计算机网卡的IP地址。

           18、BOOTP(BootProtocol)-从网络启动计算机

           19、PPTP(点对点隧道协议)-用于私人网络之间的连接。


          (2) TCP使用固定的连接:当应用程序想与另一个应用程序通信时,它会发送一个通信请求到确切的地址,TCP将在2个程序之间建立一个全双工的通信,该通信将占用两个计算机之间的通信线路,直到它被一方或者双方关闭为止。

           (3) IP用于计算机之间的通信,是无连接的:不会占用两个正在通信的计算机之间的通信线路,降低了对网络线路的要求。通过IP,消息(或者其他数据)被分为小的独立的包,通过因特网在计算机之间传送。IP负责将每个包路由至目的地。  当一个IP包从一台计算机被发送,它会到达一个IP路由器,IP路由器负责将这个包发送至目的地、直接地或者其他路由器,在一个相同的通信中,一个包经过的路径可能会和其他的包不同,路由器负责根据通信量、网络错误等参数进行正确寻址。
            IP地址:每个计算机必须有唯一的4个数字的IP地址才能连入因特网,数字在0~255之间,并由点号隔开,如190.132.8.32  。每个IP包必须有一个IP地址才能发送到另一计算机。用于 TCP/IP地址的名字被成为域名,如www.baidu.com就是一个域名,当你键入http://www.baidu.com这样的域名时,域名会被一种DNS服务器翻译成数字,既TCP/IP地址,同时负责使用新的域名信息更新彼此的系统。          

         (4)TCP/IP意味着两者协同工作,TCP负责应用软件和网络软件之间的通信,IP负责计算机之间的通信,TCP 负责将数据分割并装入IP包,并在它们到达的时候重新组合它们,IP负责将包发送至接受者。TCP/IP协议由4个层次组成:网络接口层,网络层,传输层,应用层,协议模块如下图:
          
           

           
           二、TCP 与UCP区别
          两个协议的一些应用如图:
           
           
          
           两个协议的比较如图:
          
            
             
          面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,UDP对应用层交下来的报文,既不合并也不拆分,而是保留报文的边界。因此,应用程序必须选择合适大小的报文。只是吧应用层传给IP层的数据报 发送出去,并不能保证到达目的地。可能出现丢包现象,不能保证数据的完整性。由于UDP在传输数据前不需要在客户端和服务器建立连接,因此传输速度快。

               面向字节流的传输方式,虽然应用程序和TCP的交互是一次一个大小不等的数据块,但是TCP有一个缓冲,如果应用程序传送的数据块太长,TCP就把它划分短一些再传送,若太短,TCP也可以等待积累有足够的字节后构成报文段发送出去。只要服务器端缓存区够大,会一次性接受过来,说明该种通讯模式是无边界的。当用户和服务器彼此交换数据时,必须先在双方建立一个TCP  连接,之后才能传输数据,TCP提供超时重发、丢弃重复数据、检验数据、流量控制等功能。提供的是可靠的数据流。保证了数据的正确性和数据的顺序。


        TCP三次握手协议:

        第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN-SEND状态,等待服务器确认。

        第二次握手:服务器接收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包即SYN+ACK包,此时服务器进入SYN-RECV状态。

        第三次握手:客户端接收到服务器SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器端进入ESTABLISHED状态,完成三次握手。客户端与服务器端开始传送数据。


0 0
原创粉丝点击