概述
网络协议栈我是不是可以这么理解,就是把你要发送的数据自动处理成TCPIP格式的消息发出去,这种底层的转换不需要你弄了。
是不是可以就理解成一个封装好的库,可以直接调用一些API函数方便操作。就像STM32的固件库。就像别人写好的驱动,你也只需要调用一些API函数就可以了。
TCPIP那些比如三次握手,每帧消息格式,交给协议栈去弄。
可能确实要实现网络通信,不是插个网线那么简单的事情,你要用网线通信也得符合网线的通信协议。不对,它有不同层的协议,对的,TCPIP属于比较上层的协议。最底层的串口可能只负责把消息送达。但是消息里面它也得遵循一些协议,要对你的消息进行解包分析。
是的,你要实现网络通信,单有个网卡的驱动肯定是不够的,网卡只能说给你把东西发送出去,但是单单这样还不够的。
进而我又想起了linux的网络编程,我感觉本质可能也是讲这些。我以前似乎把linux网络哦编程和linux多线程编程应用层编程混导一起去了,你以前可能真的对网络编程没有一个真正具体的认识,理解得还不到位。现在你应该清楚地认识到,网络编程是网络编程,多线程编程是多线程编程。
我觉得网络编程更偏向于底层,内核层,进程编程,多线程编程更偏向于应用层,这两者应该要区分开。而不是像之前理解的把这几个揉成一个东西。
我现在对网络编程也有了更为清晰的认识,也是得感谢华清那个串口课,明白了这个,后面才明白驱动,再才明白网络协议栈。
拍自《深度实践嵌入式linux系统移植》
看了下linux的网络编程确实是要学TCP编程 UDP编程,确实是的。感觉可能就像驱动一样,你之前可能觉得网络编程有什么好写的,有什么重要的,可能就像你以前都是直接调用别人写好的驱动,所以对于驱动也没什么概念。调用别人的惯了,都不知道底层真的实现,其实不容易,其实很值得弄弄,那也才是你的价值。
说Linux有丰富的网络协议栈是不是就是指有很多网络这方面的库。
我哪怕用个ftp,估计也是要写个协议栈。
很多东西理解深了理解透彻了就变得有意思了。当初学模电也是这种感觉嘛。
之前看到协议栈总感觉是个很抽象的东西。现在应该可以更具象地把握。
有点像比如UART串口驱动,串口驱动就是把你想发的数据,转换成UART协议格式的数据发出去,这下面的转换不需要你去做。
下面拍自《跟工程师学嵌入式开发》
最后
以上就是靓丽月亮为你收集整理的网络协议栈我是不是可以这么理解,就是把你要发送的数据自动处理成TCPIP格式的消息发出去,这种底层的转换不需要你弄了。的全部内容,希望文章能够帮你解决网络协议栈我是不是可以这么理解,就是把你要发送的数据自动处理成TCPIP格式的消息发出去,这种底层的转换不需要你弄了。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复