没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Confidential
Basic Unix Network Programming
Nolan Chen 08/05/21
Confidential
Outline
•
Basic TCP/UDP knowledge
•
Common Functions
•
Server Design Alternatives
Confidential
Socket functions for elementary TCP client/server
Socket()
Connect()
Send()
Recv()
Close()
Socket()
Bind()
Listen()
Accept()
Send()
Recv()
Close()
Recv()
TCP Client
TCP Server
Well-known
Port
Data(request)
Data(reply)
End notify
Connection
establishment
TCP Three-way handshake
Block until connect
from client
Confidential
TCP state transition diagram
LISTEN
CLOSED
ESTABLISHED
SYN_RCVD SYN_SENT
FIN_WAIT_1 CLOSING
TIME_WAITFIN_WAIT_2
CLOSE_WAIT
LAST_ACK
Appl: passive open
Send: <nothing>
Passive open
Recv:RST
Recv: SYN;
Send: SYN,ACK
Recv:SYN
Send: SYN, ACK
Appl: active open
Send: SYN
Active open
Recv: ACK
Send: <nothing>
Recv: FIN
Send: ACK
Appl: close
Send: FIN
Recv: FIN
Send: ACK
Recv: ACK
Send: <nothing>
Recv: FIN
Send: ACK
Recv: ACK
Send: <nothing>
Recv: FIN, ACK
Send: ACK
2MSL timeout
Appl: close
Send: FIN
Recv: ACK
Send: <nothing>
Appl: close
Or timeout
Recv: SYN, ACK
Send: ACK
Active close
Passive close
Indicate normal transition for client
Indicate normal transition for server
Indicate innormal transition
Confidential
Packet exchange for TCP connection
Socket()
Connect() ,block
Active open
SYN_SENT
ESTABLISHED
Connect return
Send
Recv block
Recv return
Close()
Active close
FIN_WAIT_1
FIN_WAIT_2
TIME_WAIT
Socket(), bind(), listen()
LISTEN, passive open
Accept(), block
SYN_RCVD
ESTABLISHED
Accept() return
Read(), block
Recv(), return
Server process request
Send()
Recv(), block
CLOSE_WAIT
Passive close
Recv() return 0
Close()
LAST_ACK
CLOSED
TCP Client
TCP Server
SYN J, MSS=536
SYN K, ACK J+1,
MSS=1460
ACK K+1
Data request
Data (reply)
ACK Request
ACK reply
FIN M
ACK M+1
FIN N
ACK N+1
剩余35页未读,继续阅读
资源评论
zhenjing
- 粉丝: 28
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功