什么是协议
在浏览器输入一个url,会发生什么?
假如你在浏览器中输入www.kaola.com,这是一个url。
浏览器只知道www.kaola.com,然后去DNS查找IP地址,知道了IP地址后,浏览器就开始打包请求。对于普通的浏览请求,往往会使用HTTP协议;但是对于购物的请求,往往需要进行加密传输,因而会使用HTTPS协议。
协议是通信计算机双方必须共同遵从的一组约定。如怎样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序
了解TCP/IP网络协议族的构成
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇
应用层: HTTP ,FTP,TFTP,SMTP,SNMP,DNS,telent
传输层:TCP.UDP
网络层:ICMP,IGMP.IP,ARP
数据链路层:VLAN,TRUNK,MTP
协议:网络通信规范语言的规则
TCP/IP协议的特点:
- 协议标准是完全开发的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。
- 独立于网络硬件系统,可以运行在广域网,更适合于互联网。
- 网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。
- 高层协议标准化,可以提供多种多样可靠网络服务。
每层协议在应用程序中发挥的作用
应用层
应用层决定了向用户提供应用服务时通信的活动
TCP/IP协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名系统)服务就是其中的两类。HTTP协议也处于该层。
传输层
传输层对上层应用层,提供处于网络连接中两台计算机之间的数据传输。
在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol, 用户数据协议)。
网络层(又名网络互联层)
网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机网络或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层(又名数据链路层,网络接口层)
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
UDP协议
UDP用户数据报协议,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,不保留数据备份。
优点:快。 缺点:不可靠、不稳定
UDP: 无连接,发送数据之前不需要建立连接(TCP需要)。减少了开销和延时。
UDP:面向报文,对IP数据报只做简单封装(8字节UDP报头)。减少报头开销。
UDP:没有阻塞机制,宁愿阻塞时丢弃数据不传,也不阻塞造成延时。
UDP: 支持一对一、一对多、多对一、多对多通信。
TCP协议
TCP(Transmission Control Protocol)传输控制协议,相对于UDP,TCP是面向连接的、提供可靠的数据传输服务,同时也是较UDP开销大,传输速度慢的。
TCP是点对点的连接。一条TCP连接只能连接两个端点。
TCP 提供可靠传输,无差错、不丢失、不重复、按顺序。
TCP 提供全双工通信,允许通信双方任何时候都能发送数据,发送方设有发送缓存,接收方设有接收缓存。
TCP 面向字节流 。TCP 并不知道所传输的数据的含义,仅把数据看作一连串的字节序列,它也不保证接收方收到的数据块和发送方发出的数据块具有大小对应关系。
UDP协议和TCP协议的区别:
UDP:单个数据报,不用建立连接,简单,不可靠,会丢包,会乱序;
TCP:流式,需要建立连接,复杂,可靠 ,有序。