一般意义上的TCP/UDP网络编程(利用socket收发数据)是工作在Transport层,而我们在自己的程序中交给或者接收的数据其实就只有Application层的DATA,比如我们调用socket.send(DATA)。我们在Application层的DATA除非我们自己制定格式(协议,比如HTTP/FTP),否则就是一个二进制的数据而已。我们在程序中进行socket编程只能工作在Application这一层,这一层的数据单位粒度其实只能控制到字节(Byte),所谓的bit其实只有Link这一层才有资格操作到。而TCP/IP的Link层包含OSI模型的物理层(Physical)和数据链路层(Data-Link),bit流真正只能在OSI的物理层操作,这一层就是网卡、网线之间的数据传输。(数据单位在Application为报文、在Transport为段、在Internet为数据报、在Link为帧)

标签: none