我正在从一台电脑向另一台电脑发送数据包。我正在使用 python 套接字 socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
。我们需要注意接收数据包的顺序吗?
在 ISO-OSI 模型中,传输层下面的层处理所有数据包通信。程序中是否存在所有 ISO-OSI 层?或者其中一些存在于操作系统中?
在本地主机上,我按顺序获取所有数据包。
它对互联网有什么影响吗?
最佳答案
SOCK_DGRAM
表示您要通过 UDP 发送数据包——不保证顺序,不保证接收,不保证不重复。 SOCK_STREAM
将暗示 TCP——没有数据包边界保证,但是(除非连接断开;-)保证顺序、接收和无重复。 TCP/IP 是网络模型,它赢得了每一个现场实践者的心和灵魂并使互联网成为现实,不符合 ISO/OSI -- 一个在在起草 table 上,从未真正在现实世界中获胜。
她生活和呼吸的互联网始终是 TCP/IP。不要依赖在低延迟本地网络上完成的测试,因为它以任何方式代表现实世界中会发生的事情。欢迎来到现实世界,顺便说一句,祝你好运(你需要一些!-)。
关于Python套接字编程和ISO-OSI模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458087/