插口层与协议的具体实现相关。
引言:重点是插口层和相关的系统调用的实现是最关键的问题。
splnet处理,重点要理解插口层和系统调用的实现。
Socket结构
一直被广泛使用的socket结构和插口层的使用有很大的关系。插口代表一条通信链路的一端,抽象的说就像绳子的一头,绳子代表存储和指向链路有关的信息。
理解成网线的插口比较好。。。今天华为被怼了,很不爽。特朗普有病。。包括贸易战的大节奏。
getsocketopt和setsocketopt 的系统调用能修改大部分的插口选项。。。。
struct socket定义 不必要记 关注它定义了哪些结构。
SS_NBIO :内核不阻塞进程。
SS_ASYNC:内核发送SIGIO信号给so_pgid标识。
主要看函数的调用和进程之间的关系。很无聊。只是一个载体。
系统调用
每一个系统调用均被编号,当进程执行一个系统调用时,硬件被配置或传输控制给一个内核函数。
内核函数syscall,是为了找sysent结构。
ssocket可以作为系统调用的例子。只要看三点就可以。
1建立服务器客户端和客户,终止类系统调用。2输入输出类系统调用。3管理类系统调用。
网络系统调用流程要仔细看。socket主要是开或关,读写,监听,连接。
进程,描述符和插口
这三个名称是为了给系统调用做基础的。三个名词,只有描述符比较陌生。比较无聊。。。
socket系统调用
socket系统调用生产一个新的插口,并将制定的协议连接起来。
socket的系统调用是一个简单的例子,关系到很多函数。没什么作用,无聊。
socket只是一个例子,插口层的存在在哪里是更重要的事情。
bind系统调用
bind系统调用将本地的网络运输层地址和插口层联系起来。进程需要绑定要地址,因此进程在接受TCP和接受UDP之前必须调用bind函数。
寻找插口和本地地址的连接。
listen系统调用
通知协议进程准备接受插口的请求。当由插口来了,listen就负责通知。
还有tsleep函数,wakeup函数,accept函数sonewconn,soisconnested函数
connect系统调用
服务器进程调用listenhe accept调用等待远程初始化。进程愿意自己初始化,则调用connect函数。
重点是connect处理过程。
shutdown系统调用
顾命思意就是,就是关闭插口通道。
close系统调用
关闭各类描述符。
小结
本节主要讲了网络操作相关的系统调用。但是插口层的他妈的具体在哪里,我目前还不是很明白。。。希望以后的学习中,可以补齐。
今天状态不佳,。。