本篇文章给大家谈谈深入解析网络通信基础:TCP、UDP、HTTP、HTTPS及Socket协议,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
会话层:
1. 会议的开始和结束;
2、典型设备:网关;
3、典型协议、标准及应用:RPC、SQL、NFS、X WINDOWS、ASP
传输层:
1、主要功能:Transport的端到端控制;
2、典型设备:网关;
3、典型协议、标准及应用:TCP、UDP、SPX
网络层:
1、主要功能:路由、寻址网络;
2、典型设备:路由器;
3、典型协议、标准及应用:以太网使用的协议之一(Internet Packet eXchange - IPX)、可路由协议组(APPLETALK)、网际协议(Internet Protocol - IP)、Internet控制消息协议(ICMP)、地址解析协议(ARP)、反向地址解析协议(RARP).
(网络接入层: 网络接入层也称为主机到网络层。网络接入层的功能包括IP地址到物理地址硬件的映射,以及将IP封装成帧。基于不同硬件类型的网络接口,网络访问层定义与物理介质的连接。
数据链路层:
1、主要功能:保证被忽略链路的数据链路无差错;
2、典型设备:交换机、网桥、网卡;
3、典型协议、标准及应用:802.2、802.3ATM、HDLC、FRAME RELAY;
物理层:
1、主要功能:传输物理比特流;
2、典型设备:集线器、中继器
3. 典型协议、标准和应用:V.35、EIA/TIA-232。
TCP/IP五层模型
TCP/IP 协议是一个协议簇。其中包括许多协议。 UDP只是其中之一。 TCP/IP协议集包括应用层、传输层、网络层和网络接入层。 TCP/IP五层模型的协议分为:应用层、传输层、网络层、数据链路层和物理层。中继器、集线器和我们通常所说的双绞线也工作在物理层;网桥(现在很少使用)、以太网交换机(二层交换机)、网卡(其实网卡一半工作在物理层,一半工作在数据链路层)都处于数据链路层;路由器和三层交换机位于网络层;传输层主要是四层交换机,也有工作在四层的路由器。
1. TCP、UDP对比
1.1 TCP(Transmission Control Protocol传输控制协议)
TCP 是面向连接的协议,在发送和接收数据之前必须建立可靠的连接。一条TCP连接必须经过3次“对话(握手)”才能建立。 TCP面向连接的通信方式(三次握手、四次挥手)大大提高了数据通信的可靠性,允许发送数据端和接收端在正式传输数据之前进行交互,为正式传输数据奠定了可靠的基础。数据传输。
TCP三次握手过程:1 主机A通过向主机B发送一个包含同步序号标志位的数据段来请求主机B建立连接,通过这个数据段,主机A告诉主机B两件事: 我要和你通信;你可以用哪个序号作为起始数据段来回复我。 2 主机B收到主机A的请求后,用一个带有确认响应(ACK)和同步序列号(SYN)标志位的数据段响应主机A,同时也告诉主机A两件事:我已经收到你的请求,即可传输数据;您想使用哪个序列号作为起始数据段来回复我? 3 主机A收到此数据段后,发送确认响应,确认已收到主机B的数据段: "我已经收到回复了。我现在将开始传输实际数据。这样,三次握手就完成了,主机A和主机B就可以进行传输了。数据。 3次握手的特点是没有应用层数据。仅当TCP 连接建立时,SYN 标志才设置为1。握手完成后,SYN 标志置0。TCP断开连接4次挥手过程:1 当主机A 完成数据传输后,将控制位FIN 置1,并请求停止TCP 连接2. 主机收到FIN 后, B回应它并确认该方向的TCP连接将被关闭。它将ACK设置为13,然后主机B向相反方向发出关闭请求。将FIN设置为14。主机A确认主机B的请求,将ACK设置为1,双向关闭结束。该术语解释了ACKTCP 标头的控制位之一,用于确认数据。确认由目的地发送,用于告知发送方已收到序列号之前的所有数据段。例如,如果确认号码为,则该确认号码无效。这时就会要求重新传输数据,以保证数据的完整性。 SYN 同步序列号,TCP 建立连接时该位设置为1。 FIN 发送端完成发送任务位。当TCP 完成数据传输,需要断开连接时,建议断开连接的一方将该位设置为1。 TCP 头结构: 源端口16 位目的端口16 位序列号32 位响应序列号32 位TCP 头长度4 位保留6 位控制码6 位窗口大小16 位偏移量16 位校验和16 位选项32 位(可选) 这样我们就得到了TCP 标头的最小长度,即20 字节。
1.2 UDP(User Data Protocol,用户数据报协议)
(1) UDP是一种非连接协议。源端和终端在传输数据之前不建立连接。当它想要传输时,它只是从应用程序中获取数据并尽快将其丢弃。到互联网。在发送端,UDP传输数据的速度仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP将每个报文段放入队列中,应用程序每次从队列中读取每个报文段。读取消息段。 (2)由于传输数据时没有建立连接,因此不需要维护连接状态,包括发送和接收状态等。因此,一台服务器机器可以同时向多个客户端传输同一条消息。 (3)UDP数据包的报头很短,只有8个字节,与TCP的20个字节的数据包相比,额外的开销很小。 (4)吞吐量不受拥塞控制算法调节,仅受应用软件产生数据的速率、传输带宽、源端主机性能的限制。 (5)UDP采用尽力而为传送,即不保证可靠传送,因此主机不需要维护复杂的链路状态表(里面有很多参数)。 (6)UDP是面向消息的。发送方的UDP交给应用程序的消息在添加报头后向下传递到IP层。既不进行分割也不合并,但这些数据包的边界被保留,因此应用程序需要选择合适的数据包大小。
我们经常使用“ping”命令来测试两台主机之间的TCP/IP通信是否正常。其实“ping”命令的原理就是向对方主机发送一个UDP数据包,然后对方主机确认收到该数据包。如果数据包到达的消息及时反馈,网络就会畅通。 UDP 头结构: 源端口16 位目的端口16 位长度16 位校验和16 位TCP与UDP的区别:TCP:是流模式协议,面向连接可靠传输(保证数据正确性和数据顺序),用于传输大数据数据量大(流模式),速度慢,建立连接需要较多的开销(时间、系统资源),而且TCP程序结构比较简单。
UDP:是数据报模式协议,面向非连接、不可靠传输(无法保证数据正确性和数据顺序),用于传输少量数据(分组模式),速度快,需要系统资源较少,UDP程序结构比较简单。
2 HTTP、HTTPS、Socket协议
2.1HTTP协议即超文本传送协议(HypertextTransfer Protocol)
HTTP 是Web 网络的基础,也是手机网络常用的协议之一。它是一个建立在TCP协议之上的应用程序。最显着的特点是客户端发送的每个请求都需要服务器发回响应。请求完成后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。因此,HTTP连接是一种“短连接”。为了保持客户端程序在线,需要不断地向服务器发起连接请求。如果服务器长时间无法收到客户端的请求,则认为客户端“离线”。如果客户端长时间收不到服务器的回复,则认为网络已断开。在HTTP 1.0中,来自客户端的每个请求都需要建立单独的连接。处理完该请求后,连接自动释放。在HTTP 1.1中,一个连接可以处理多个请求,并且多个请求可以重叠。无需等待一个请求结束后再发送下一个请求。
2.2HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer)
HTTPS是一个以安全为目标的HTTP通道,是HTTP的安全版本。在HTTP 下添加SSL 层。 HTTPS的安全基础是SSL,因此加密的细节需要SSL。 HTTPS 具有与HTTP 不同的默认端口和加密/身份验证层(在HTTP 和TCP 之间)。 HTTP 协议以明文形式发送内容,不提供任何形式的数据加密。如果攻击者拦截了网页浏览器和网站服务器之间的传输消息,就可以直接读取其中的信息。因此,HTTP协议不适合传输某些数据。敏感信息。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
【深入解析网络通信基础:TCP、UDP、HTTP、HTTPS及Socket协议】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
真想好好学习一下这些东西!
有15位网友表示赞同!
网优和系统这块真的离不开这些基础知识啊。
有8位网友表示赞同!
感觉最近都在用socket,不知道这个里面隐藏着这么多秘密啊。
有19位网友表示赞同!
HTTP/HTTPS这部分好像都比较常用吧?
有14位网友表示赞同!
我刚开始学网络编程,感觉这些协议很复杂的样子...
有17位网友表示赞同!
做前端开发的时候用到 HTTPS 还挺多。
有6位网友表示赞同!
要深入理解代码就需要搞清楚这些协议的作用。
有11位网友表示赞同!
学习完以后可以写一个小项目吧!
有10位网友表示赞同!
TCP/UDP的区别好像一直在印象里,但具体实现不太了解。
有13位网友表示赞同!
Socket 这个名字听上去就很有科技感。
有10位网友表示赞同!
看这个标题感觉会很费脑力...
有20位网友表示赞同!
有讲清这些协议之间关系的资料吗?
有18位网友表示赞同!
我记得以前学过一点 TCP/IP 的基础知识,现在应该复习一下了。
有17位网友表示赞同!
学习网络协议其实很有用,想提高编程水平的话很重要。
有17位网友表示赞同!
不知道哪种讲法比较好理解呢,视频、文章还是代码?
有11位网友表示赞同!
这些知识点可能听起来很抽象,感觉得找个例子来理解。
有20位网友表示赞同!
今天刚好看到一篇有关 TCP 的论文想学习一下!
有14位网友表示赞同!
真希望有位高手能把这些协议讲清楚!
有7位网友表示赞同!
网络协议的世界太复杂了,需要慢慢深入了解!
有11位网友表示赞同!