学习笔记1

Linux网络编程网络体系结构OSI和TCP/IP模型OSI模型OSI应用层表示层会话层传输层网络层数据链路层物理层TCP/IP模型各个层次的作用TCP/IP模

大家好,今天来为大家分享学习笔记1的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

OSI 应用层表示层会话层传输层网络层数据链路层物理层

TCP/IP模型

各个层次的作用

TCP/IP模型网络接口层

TCP

tcp 向应用层提供可靠的面向连接的数据流服务

在三次握手协议(B-A)的第二步中,主机B收到客户端A的SYN报文后,会返回SYN+ACK(ack=j+1,syn=k)报文。此时,服务器进入SYN_RECV状态。

第三步(A-B),客户端A收到服务器发送的SYN+ACK报文后,向服务器发送确认ACK(ack=k+1)报文。客户端和服务器进入ESTABLISHED状态并完成tcp连接。

TCP包头源端口和目的端口:均为2字节。序列号:4个字节,标识数据包发送的顺序。确认号:4字节,期望接收的下一个数据包的序列号。下面是一些标志位,SYN用于建立连接,FIN用于关闭连接,ACK标识数据包是否有确认系统,RST用于复位主机并拒绝非法连接请求。所以tcp头至少有20个字节

学习笔记1

UDP

udp是用户数据报协议,是无连接的不可靠传输协议

Udp header 因此Udp header 是8 个字节

协议的选择

当网络状况良好时,建议使用udp,以减少网络负载。当网络状况较差时,使用tcp来防止数据丢失。对数据可靠性要求较高的应用程序使用tcp。对于实时性要求较高的应用,建议使用UDP来提高速度。

网络编程基础

套接字

流式套接字(SOCK_STREAM) 流式套接字提供可靠、面向连接的通信流。 TCP 通信使用流式套接字。数据报套接字(SOCK_DGRAM) 数据报套接字提供无连接、不可靠的服务。该套接字用于udp 通信。原始套接字(SOCK_RAW) 原始套接字允许直接访问底层协议(例如ip 或icmp)。它功能强大,但使用起来不方便。主要用于一些协议的开发。

IP地址

IP地址用于识别网络中的主机

IP地址格式转换IP地址有小数点制和32位二进制形式,在网络传输过程中以第二种形式存储。 ipv4的地址转换函数有inet_aton()、inet_addr()、inet_ntoa()等。 inet_addr(“192.168.0.1”); //将点分十进制转换为二进制

字节序

学习笔记1

指的是计算机中的多字节整数数据存储方式,分为big endian和little endian

Little endian:数据的高位存储在计算机地址的高位中,低位存储在计算机地址的低位中。

Big Endian:数据的高位存储在计算机地址的低位中,高位存储在计算机地址的高位中。

网络中字节序均为big-endian模式字节序转换函数

长整型数据转换htonl()、ntohl(),h代表主机,n代表网络短整型数据转换htons()、ntohs()。

TCP编程

客户

创建通信套接字socket(int family, int type, int protocol)family:协议族,IPV4协议(AP_INET)tpye:socket类型,这里是流式socket(SOCK_STREAM)协议:0,表示默认匹配相关协议返回值:成功(非负套接字描述符) 失败(-1)请求连接服务器端connect(int sockfd, struct sockaddr *addr, int addrlen) sockfd: 创建的套接字文件描述符addr : 一个结构体,包括服务器IP 地址、端口number,协议addlen:地址长度返回值:成功(0) 失败(-1) 发送消息send(int sockfd, const void *buf, int len, int flags)sockfd :创建的套接字文件描述符buf:发送数据的缓冲区len :发送数据长度flags:一般为0,表示阻塞返回值:成功(实际接收到的字节数)失败(-1)接收报文recv(int sockfd, const void *buf, int len, int flags)与发送相同close(int sockfd) 服务器端

用户评论

学习笔记1
来自火星的我

终于整理出了这个月的学习笔记!虽然每天都觉得进度很慢,但看到这些记录还是蛮有成就感的。以后要坚持更规律地写笔记,看看效果会不会更好。

    有10位网友表示赞同!

学习笔记1
半世晨晓。

哇,你的学习笔记真是太棒了!看着这么多精心整理的信息,我也有点想要好好记录下自己的学习内容了。请问你用什么工具来制作视频笔记的?可以分享一下吗?

    有18位网友表示赞同!

学习笔记1
孤者何惧

这种学习方法真是不错!以前我也常常感觉自己记不住东西,看来笔记的确是一个很好的辅助方式。我现在就开始行动吧!

    有10位网友表示赞同!

学习笔记1
独角戏°

标题就叫“学习笔记”,却是一堆杂乱无章的数据,还不如直接搜百度呢!感觉浪费时间,希望作者下次能把笔记整理得更规范一些,这样才能起到真正的作用。

    有10位网友表示赞同!

学习笔记1
ゞ香草可樂ゞ草莓布丁

看到你的笔记里很多自己也感兴趣的知识点,真希望能和你交流一下。不过我有点担心我的学习水平跟不上你啊…

    有18位网友表示赞同!

学习笔记1
冷青裳

你的学习效率实在让人佩服!我每天工作和学习都要挤时间,想都没想过写笔记。看来我还需要好好规划下自己的时间了,才能像你一样高效学习。

    有10位网友表示赞同!

学习笔记1
执拗旧人

虽然我不确定学习笔记是不是适合所有人,但至少在你分享的例子中,它确实有效地帮助了你理解并记忆知识点。我觉得这是一个很好的方法,值得尝试一下!

    有5位网友表示赞同!

学习笔记1
雁過藍天

视频笔记?这也太advanced了!我还在传统的文字笔记阶段,学习你的学习方法就是一种挑战了!不过我也要尝试突破一下自己,毕竟新事物总会带来新的体验和收获。

    有18位网友表示赞同!

学习笔记1
╭摇划花蜜的午后

你分享的学习笔记真inspiring!让我看到学习也不一定枯燥乏味,只要找到适合自己的方法,就能爱上学习的过程。我决定从明天开始做一个学习时间表,并记录我的学习笔记!

    有17位网友表示赞同!

学习笔记1
余温散尽ぺ

我觉得学习笔记的重点在于总结和反思,而不是仅仅录下知识点。建议你在笔记中加入一些自己的思考和感悟,这样会更有帮助。

    有5位网友表示赞同!

学习笔记1
柠夏初开

学习笔记是很有意义的记录,但我个人不太习惯使用视频形式。我喜欢用文字整理笔记,更方便查找和回顾。每个人找到适合自己的学习方法才是最重要的!

    有20位网友表示赞同!

学习笔记1
冷嘲热讽i

我很喜欢你的学习方式,坚持记录笔记真的能让我们更加清晰地认识自己所学知识和自身的不足之处。你提供的技巧很有启发性,我以后也要试试看哦!

    有6位网友表示赞同!

学习笔记1
早不爱了

我的学习思路也是和你差不多的,只不过我没有尝试过视频笔记,感觉这种方法确实新颖而且方便记忆。也许我会在接下来的学习生活中加入这个元素看看效果怎么样!

    有8位网友表示赞同!

学习笔记1
笑傲苍穹

其实我觉得学习笔记的价值不仅仅在于记录知识点,更在于帮助我们梳理思绪、总结经验教训和促进反思和思考。像你一样整理学习笔记,是一个非常好的学习习惯。

    有14位网友表示赞同!

学习笔记1
旧事酒浓

学习笔记这篇文章让我意识到一个重要的事:学习方法因人而异,没有绝对正确的学习方式。 找到适合自己的方法才是最重要的!

    有5位网友表示赞同!

学习笔记1
小清晰的声音

你的学习笔记记录非常详细,我相信对你未来的学习和工作都会很有帮助!保持这种良好的学习习惯,一定会取得很好的成绩!

    有19位网友表示赞同!

学习笔记1
伱德柔情是我的痛。

视频笔记确实是一个有趣的想法!也许以后我可以也尝试一下这个方法。 虽然现在我的时间比较紧迫,但在未来我会更加重视学习笔记的价值, 并将其融入到我的生活方式中!

    有10位网友表示赞同!

学习笔记1
*巴黎铁塔

学习笔记记录不仅可以帮助我们回顾过去,还能激发未来学习的方向。你分享的学习笔记给我很大的启发, 我决定从今天开始坚持记录自己的学习心得体会!

    有19位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/116388.html

(0)
小su的头像小su
上一篇 2024年9月1日 上午6:24
下一篇 2024年9月1日 上午6:35

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注