HTTP/TCP/IP协议及socket

258 阅读4分钟

握手

第一次握手:客户端发送请求包到服务器,等待服务器确认 

第二次握手:服务器响应客户端请求,同时也发送一个回应包给客户端 

第三次握手:客户端收到服务器回应包后,向服务器发送确认包

TCP/IP是个协议组,它分为网络层,传输层和应用层

TCP连接是长连接 一对一

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输

HTTP是应用层协议,主要解决如何包装数据。比如在body header封装数据

tcp与udp区别

TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。

比喻

“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。

关于TCP/IP和HTTP协议的关系,比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等

图表

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

7应用层例如HTTPSMTPSNMPFTPTelnetSIPSSHNFSRTSPXMPPWhoisENRP
6表示层例如XDRASN.1SMBAFPNCP
5会话层例如ASAPTLSSSH、ISO 8327 / CCITT X.225、RPCNetBIOSASPWinsockBSD sockets
4传输层例如TCPUDPRTPSCTPSPXATPIL
3网络层例如IPICMPIGMPIPXBGPOSPFRIPIGRPEIGRPARPRARPX.25
2数据链路层例如以太网令牌环HDLC帧中继ISDNATMIEEE 802.11FDDIPPP
1物理层例如线路无线电光纤信鸽

1 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

2 表示层 例如XDR、ASN.1、SMB、AFP、NCP

3 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets

4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

5 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25

6 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

7 物理层 例如线路、无线电、光纤、信鸽  

Socket建立网络连接的步骤

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

 套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

 1。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。 

2。客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

 3。连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。


链接:https://juejin.cn/post/6844903505002496013
来源:掘金