网络协议
OSI七层结构模型(从上到下)
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
各层协议
物理层:以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等
数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等
网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等
传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等
应用层协议:DHCP ·DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等
协议详情
TCP/IP协议(Transmission Control Protocol/Internet Protocol):
中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议
不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族
-
OSI七层参考模型:物理层、数据链路层(网络接口层)、网络层(网络层)、传输层(传输层)、会话层、表示层和应用层(应用层)。而TCP/IP通讯协议采用了4层的层级结构:网络接口层、网络层、传输层、应用层,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
-
常用协议以及层次关系
IP(Internet Protocol)
- Internet层协议
- Internet协议,负责TCP/IP主机间提供数据报服务,进行数据封装并产生协议头,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)
ICMP(Internet Control Message Protocol)
- Internet层协议
- Internet控制报文协议。ICMP协议其实是IP协议的的附属协议,IP协议用它来与其它主机或路由器交换错误报文和其它的一些网络情况,在ICMP包中携带了控制信息和故障恢复信息
- PING是最常用的基于ICMP的服务
ARP(Address Resolution Protocol)
- Internet层协议
- 地址解析协议
RARP(Reverse Address Resolution Protocol)
- Internet层协议
- 逆向地址解析协议
TCP(Transmission Control Protocol)
传输层(主机-主机层)协议
传输控制协议
-
面向连接的可靠通信协议,通过三次握手建立连接
由于TCP是面向连接的所以只能用于端到端的通讯
UDP(User Datagram Protocol)
- 传输层(主机-主机层)协议
- 用户数据报协议
- 面向无连接的不可靠通讯协议
- 由于通讯不需要连接,所以可以实现广播发送
HTTP(HyperText Transfer Protocol)
- 应用层协议
- 超文本传输协议,默认端口80
- 是用于从WWW服务器传输超文本到本地浏览器的传输协议
- 是客户端浏览器或其他程序与Web服务器之间的应用层通信协议
- HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”“短连接”。
FTP(File Transfer Protocol)
- 应用层协议
- 文件传输协议
其他重点
socket(套接字)
- 计算机专业术语,本身并不是协议,而是一个调用接口(API),Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已
- 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket
- 建立网络通信连接至少要一对端口号(socket)
- 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口
- 创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接
- 通常情况下socket连接就是TCP连接,socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口
- 用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
- 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认
SOCKET连接与TCP连接
- 创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接
Socket连接与HTTP连接(此段有点难以理解)
由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。
但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导 致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。
而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端,连接可能已经断开;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
HTTP与TCP
Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接
随着时间的推移,html页面变得复杂了,每次都需要建立一次tcp连接就显得低效了,从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性.简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,但是Keep-Alive不会永久保持连接,它有一个保持时间.后来,通过Session, Cookie等相关技术,也能保持一些用户的状态。但是还是每次都使用一个连接,依然是无状态连接。
-
http是应用层协议, tcp是传输层。 http使用tcp传输文本数据
百度百科比喻:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力
https 和 http
https是对http数据进行了加密再传输; 对端收到tcp数据后, 再进行相应的解密/验证
杂乱重点
TCP是底层通讯协议,定义的是数据传输和连接方式的规范
HTTP是应用层协议,定义的是传输数据的内容的规范
HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP
HTTP支持的是www服务
而TCP/IP是协议 它是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。
TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
参考
待补
阿里云服务器免费领了,企业新用户:4核-8G-5M,个人用户:2核-4G-1M
点击立即领取