加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux内核分析 - 网络[十六]:TCP三次握手

发布时间:2016-09-28 12:48:07 所属栏目: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()

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读