经过三个月的学习,我发现进度比较慢。照这个进度下去,平均一周花费5-6小时,还不知道读完全书需要多久。
现在做个计划,全书除开简介部分分为 基础 和 高级 套接字编程两部分,其中
基础可以分为
- TCP 套接字编程
- UDP套接字编程
- SCTP套接字编程
高级部分是可以独立阅读的部分。
我的期望是两个月(40小时)读完全书的第二部分,两个月完成该部分作业,梳理清楚主要概念,并完成笔记。即在二月份钱读完第二部分,四月份前完成该部分作业。
2018.11.28
今天读完了unp第一章,并通过一个c程序,向本机发送一个TCP请求,读取返回的时间信息并展示。
通过netstat 和 ifconfig 对unix环境下的网络接口和路由表 进行获取。
11.29
读完2.8。 完成了一章的习题,在阿里云ECS上部署了发送时间服务器,在自己机器上运行 请求时间客户端,建立连接。
了解TCP的三次握手, 四次挥手。 TCP的11种状态。
11.30
读完第二章。主要是描绘了TCP/IP协议的外貌,并重点介绍了传输层的三个协议:TCP的三次握手,四次挥手和TCP的Time wait状态,套接字层提供的缓冲机制。
了解了IPv5是一种为流媒体提供实时传输的协议,已经包含在IPv6中。把一个完整的TCP连接所发生的建立连接,传送数据,断开连接的分组交换情况画图记录下来。
12.24
读完第三章,并完成习题3.3。
编写inet_pton_loose代码,这是一个比inet_pton限制更少的函数。当协议为ipv4时,inet_pton要求 参数为点分十进制数字符串;ipv6时,要求参数为十六进制的字符串。
这个函数当inet_pton解析失败时,尝试调用inet_aton这个限制更少的函数来返回结果。
1.10
读完第四章,正在读第五章。理解了一个通过Fork子进程实现并发的服务器 与 一个打印发送信息回声的客户端 的交互过程。明白信号的作用。
1.14
读完第五章。
理解信号处理函数的作用是处理僵死子进程。
使用waitpid处理阻塞中的信号。服务器终止时,客户端阻塞在connect方法上,没有收到终止信号,使用select/epoll将可以监听多个描述符并返回其中就绪的。
客户端与服务器通信时如果传输数值数据,可能引发新问题。
目前进度:离二月份还有两周半,读完一半,进度稍慢。