如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平
这是我的最后一门博客了,主要总结了网络协议栈的部分内容(内容实在太庞大,只抽取一小部分来理解)。 此外作为最后的总结,我结合老师每个课件相关内容,找了相对应的题目。 一、网络协议栈总结 首先上图,此图是客户端发到服务器消息所经过的完整路径(图片源自:https://www.cnblogs.com/sammyliu/p/5225623.html) 1. linux内核ipv4网络部分分层结构: BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etc INET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形式的socket时,还需要保留些额外的参数,于是就有了struct sock结构。文件主要 有:/net/ipv4/protocol.c /net/ipv4/af_inet.c /net/core/sock.c etc TCP/UDP层:处理传输层的操作,传输层用struct inet_protocol和struct proto两个结构表示。文件主要有: /net/ipv4/udp.c /net/ipv4/datagram.c /net/ipv4/tcp