计算机网络体系结构

五层协议体系结构

应用层:http,https

传输层:tcp,udp

网络层:ip

数据链路层:

物理层:

udp的主要特点

无连接

面向报文,应用程序传递的数据添加首部后直接下放给ip层

不保证可靠性交付

支持一对一,一对多,多对多,多对一的交互通信

没有拥塞控制,网络拥塞时,不会使原主机发送速率降低

首部开销小,只有8字节,tcp20字节

tcp的主要特点

面向连接的传输层协议,应用程序发送请求前需要建立连接,发送完毕后需要释放连接

只支持一对一,点对点

保证可靠性交付,无差错,不丢失,不重复,按序到达

全双工通信,允许通信双方应用进程都可以发送数据

面向字节流

三次握手

服务器进程创建传输控制块tcb,并处于监听状态,等待客户端的连接请求

客户端创建传输控制块tcb,向服务器发送连接请求报文段

服务器收到连接请求报文段后,如同意建立连接,回复确认报文段

客户端收到确认报文段,回复确认报文段,并进入已建立连接状态

服务器收到确认报文段,进入已建立连接状态

tcp建立连接后,为什么还要发送确认?

为了防止客户端发送连接请求后断开(已失效请求),服务器端收到后进入连接状态而产生错误

四次挥手

客户端发送连接释放报文段,停止发送数据,进入FIN-WAIT-1(终止等待1)状态,等待服务器确认

服务器收到连接释放报文段后,发送确认报文段,进入CLOSE-WAIT(关闭等待)状态,服务器发送数据客户端仍要接收

客户端收到确认后,进入FIN-WAIT-2(终止等待2)状态,等待服务器发出连接释放报文段

服务器没有要发送的数据了,发出连接释放报文段,进入LAST-ACK(最后确认)状态,等待客户端确认

客户端收到连接释放报文段后,发出确认,进入TIME-WAIT(时间等待)状态,经过时间等待计时器设置的时间2msl后,进入CLOSED(关闭)状态

服务器收到确认报文段,进入CLOSED(关闭)状态

为什么要等待2msl?

保证客户端最后一个报文段能够到达服务器,如果没有到达,服务器会超时重传连接释放报文段,保证双方都能进入closed状态

创建socket步骤

创建socket

绑定socket到指定地址和端口

监听客户端连接

读取客户端输入

关闭socket

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇