Linux内核分析 - 网络[十六]:TCP三次握手
发布时间:2016-10-16 06:18:26 所属栏目:Linux 来源:站长网
导读:副标题#e# 内核:2.6.34 TCP是应用最广泛的传输层协议,其提供了面向连接的、可靠的字节流服务,但 也正是因为这些特性,使得TCP较之UDP异常复杂,还是分两部分[创建与使用]来进行分析。这篇主要包括TCP的创建及三次握手 的过程。 编程时一般用如下语句创建
其中有些设置是比较重要的,如 sk->sk_state = TCP_CLOSE; sk_set_socket(sk, sock); sk->sk_protocol = protocol; sk->sk_backlog_rcv = sk->sk_prot->backlog_rcv; 创建socket后,接下来的流程会因为客户端或服务器的 不同而有所差异,下面着重于分析建立连接的三次握手过程。典型的客户端流程: connect() -> send() -> recv () 典型的服务器流程: bind() -> listen() -> accept() -> recv() -> send() 客户端流程 *发送SYN报文,向服务器发起tcp连接 connect(fd, servaddr, addrlen); -> SYSCALL_DEFINE3() -> sock->ops- >connect() == inet_stream_connect (sock->ops即inet_stream_ops) -> tcp_v4_connect() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读