握手2

Posted guoyu1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了握手2相关的知识,希望对你有一定的参考价值。

我们看一看服务器端的接收代码:

依次调用 tcp_v4_rcv,判断下面函数

struct sock *sk2 = inet_lookup_listener(dev_net(skb->dev),
                            &tcp_hashinfo,
                            iph->saddr, th->source,
                            iph->daddr, th->dest,
                            inet_iif(skb));

寻找处于 TCP_LISTEN状态的sock ,再看一下下面函数

static inline struct sock *inet_lookup_listener(struct net *net,
        struct inet_hashinfo *hashinfo,
        __be32 saddr, __be16 sport,
        __be32 daddr, __be16 dport, int dif)
{
    return __inet_lookup_listener(net, hashinfo, saddr, sport,
                      daddr, ntohs(dport), dif);
}

ntohs(dport) 也就是服务器的本地端口。

以上是关于握手2的主要内容,如果未能解决你的问题,请参考以下文章

深入理解TCP协议及其源代码——三次握手

websocket失败:WebSocket握手期间出错:意外响应代码:400

握手2

为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误

Android 4.4.2 SSL 握手中止

web代码片段