网络:Socket、TCP/IP、HTTP
2017-12-01 本文已影响12人
攻克乃还_
一、OSI的7层从下到上
- Open System Interconnection
- 7、6、5、4 层定义了应用程序的功能
- 3、2、1 层主要面向数据流
1.物理层
2.数据链路层
3.网络层( IP协议)
4.传输层(TCP协议)
5.会话层
6.表示层
7.应用层(HTTP协议)
二、Socket、TCP/IP、HTTP 关系
-
socket
则是对TCP/IP
协议的封装和应用。TPC/IP
协议是传输层协议,主要解决数据 如何在网络中传输。-
Socket
本身并不是协议,而是一个调用接口 (API),通过Socket,我们能使用TCP/IP
协议。
-
-
TCP/IP
和HTTP
协议的关系: -
HTTP
就像快递单,有了它快递员才知道你到送货去哪里,谁接收
,而TCP就像那条路,快递员要通过这条路送货去那里
三、TCP的三次握手
第一次握手:
- 客户端发送
SYN包
到服务器,进入数据发送(SYN_SEND)
状态,等待服务器确认
第二次握手:
- 服务器
SYN包
后,发送SYN+ACK(确认)包
,此时服务器进入数据接收(SYN_RECV)
状态
第三次握手:
- 客户端收到
SYN+ACK(确认)包
后,向服务器发送ACK(确认)包
,客户端和服务器进入建成状态
established: 已经建立的
- 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据
- 理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去
- 服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”
四、建立Socket连接
- 建立
Socket
连接至少需要一对套接字:客户端Socket,服务器端Socket
。- 套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合
套接字之间的连接过程分为三个步骤:
1.服务器监听:
-
服务器Socket
处于实时等待连接的状态- 并不具体的定位客户端套接字
2.客户端请求:
-
客户端Socket
提出连接请求-
客户端Socket
必须指出服务器端套接字的地址和端口号
-
3.连接确认:
- 当
服务器Socket
监听到连接请求时,立即响应请求:建立一个新的线程,把服务器Socket
的描述发给客户端,若客户端确认,双方建立连接。-
服务器Socket
继续处于监听状态
-
五、TCP和UDP的区别
1.TCP面向链接,UDP非面向连接
TCP的三次握手最大程度保证了,数据传输的可靠性
2.UDP数据传输速率更快
因为不必进行三次握手