TCP_a simple network request process flow
2015-04-27 03:46:24 4 举报
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为网络通信提供了一种可靠的数据传输方式,确保数据在传输过程中不会丢失或损坏。 一个简单的网络请求过程流程如下:客户端向服务器发送一个带有目标端口和目标IP地址的SYN包,请求建立连接。服务器收到SYN包后,会回复一个ACK包,表示同意建立连接。此时,客户端和服务器之间建立了一个虚拟连接。接下来,客户端向服务器发送请求数据,服务器收到数据后,将数据发送给客户端。最后,客户端和服务器都发送一个FIN包,表示关闭连接。
作者其他创作
大纲/内容
add
NO
easy_connect_t-easy_handler_t-decode()
0.1sto
listenfd
EASY_OK表示已经知道响应什么数据,或不需要相应client;EASY_AGAIN表示还没有准备好响应数据
初始化各线程
get listen lock
easy_connection_do_request
函数
解析数据
r-ipacket
return
easy_switch_listen()
图例
Start
easy_connection_on_listen()
Timer
easy_connection_do_response
has r-opacket?
decode all buffers in message?
callback
listen_watcher
in ev_loop
easy_message_t
request-list
easy_handler_t-on_connect()
into
easy_eio_create()
create
easy_connection_write_socket()
数据结构
该回调意味着开始阶段,每个线程都会相应accept事件
server
easy_connect_t-easy_handler_t-process()
easy_connection_t
需要自己实现的函数
easy_connect_t-easy_handler_t-encode()
成员变量
stop listening to EV_READ
accept listenfd?
easy_connection_process_request()
after 0.1sno lock
client
easy_connection_on_readable
data into Socket
EASY_OK
easy_request_t
release
队列
to
listen lock
replace the current listen thread & add EV_READ event
add EV_READ event
easy_connection_on_readable/writable/timeout_onn()
easy_connection_on_accpet()
re-acquire & load balance
easy_connection_add_listen()
YES
流程方向
打开监听端口,对线程池中的每个线程
0.5s
easy_connection_request_done()
packet
client OR server?
旁注
判断
restart
决策
register timeout event
0 条评论
下一页