课程概述
一、主要包括2方面内容
1.基于socket通信的编程
每次写2个程序,开2个终端:
编程情况如下,具体服务器一般用已有的服务器就够了。
2.简单的服务期器编程:![](https://i-blog.csdnimg.cn/blog_migrate/025b36a5b415b2391597408233c3a6e6.png)
本课程主要用c语言写的。
接下来介绍apache服务器(已有的服务器),nginx是新出的性能更好的服务器,microsoft不是开源的,我们不用,因为一个人是写不出来太大的程序的,我们了解原理即可。
网上可以找到很多简单的服务器,但是突发情况的处理没有现有的服务器做的好。
二、上课方式概述
- 课程流程图:
2.课程时间安排,每一章节都是基于前一次课,落了再补可能跟不上
3.参考书籍,电子版:
4.考核方式:考试40实验40(12个实验)平时20(作业2-3次,考勤)
5. 对于这门课,我的想法
主要用来复习计算机网络,和用vscode编译c文件,给代码加注释,在此基础上自己能编写更好,不能也不强求,目标是:认真去做每节课的内容,认真考试。
三、服务器-客户机模型
- 1.1基本的C/S服务模型
- 基本的通信方式:
网络层是面向用户的最底层,是面向通信的最高层,通过高级语言中的套接字(类,方法)调用TCP/UDP,IPv4(地址为32bit的标识符)/IPv6(地址为128bit)的接口。IP报文的格式:首部20字节,包括协议类型,源地址/目的地址,标识位,校验和等,一般用C类,D类用于广播。127.00.00.01本机回环测试localhost。
- 1.3 TCP协议
- 面向连接
- 可靠性:丢失重传,RTT的估算
- 对数据进行排序
- 提供流量控制和拥塞控制
- 全双工的
计算机网络的理论是有点枯燥的,理论很复杂,代码实现很简单,操作一下结构体或者类就可以实现。
- TCP协议数据段格式
RST位、SYN位、FIN位
- TCP连接建立的过程:三次握手