网络编程socket理论一
Posted Lucky&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程socket理论一相关的知识,希望对你有一定的参考价值。
网络通信理论
首先说下网络之间的通信流程看图
Socket 层是位于运输层和应用层之间的,封装好的,方便使用
Socket 是什么和工作流程
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。
Tcp的三次握手和四次挥手
先看理论图
这些都是底层实现的,在socket中都不用写这些,只需要明白其中原理就行,
三次握手:
三次握手:客户端先给服务端发送一个syn请求,如果客户端收到就回复一个ack,客户端收到服务端的消息后,也会回复一个ack表示能收到对方的消息:
其实三次握手就是:保证服务端和客户端都能接收到对方的消息
四次挥手:
客户端给服务端发送消息说:自己发送完了,问服务端是否还有消息:
服务端将数据发送完毕
服务端发送消息说自己发送完毕,并准备关闭链接
客户端也关闭链接
通俗的来说就是:
三次握手: 通俗的来讲就是 A和B打电话
第一次握手 : 你好, 我是A, 你能听到我说话吗
第二次握手 : 听到了, 我是B, 你能听到我说话吗
第三次握手 : 听到了, 我们可以开始聊天了
三次握手其实就是为了检测双方的发送和接收能力是否正常, 你说呢?
四次挥手
第一次挥手 : A告诉B, 我没数据发了, 准备关闭连接了, 你要发送数据吗
第二次挥手 : B发送最后的数据
第三次挥手 : B告诉A, 我也要关闭连接了
第四次挥手 : A告诉B你可以关闭了, 我这边也关闭了
scoket编程请看下一篇文章
以上是关于网络编程socket理论一的主要内容,如果未能解决你的问题,请参考以下文章