这是我写得第一篇博客,是一篇读书笔记。
前段时间,从网上买了W.Richard.Stevens的两本书《APUE》与《TCP/IP详解 卷1:协议》,前一本粗略的翻了一遍,算是对Linux系统有了直观上的了解,比如说文件操作、进程、线程等知识,准备这几天开始把《APUE》认真地看一遍,每天消化一点内容。而后一本书还在看,已经看到11章UDP的前半部分了,这里我把前10章的内容做一个总结,当做是知识的再消化。
第一次写博客,语言肯定会比较晦涩,表达也会不是很清晰。我是一名电子专业的学生,第一次接触TCP/IP协议栈的知识,难免会出现错误,如果您能够看到这篇文章的话,希望您能够指出我的错误,谢谢。
TCP/IP协议族能够让不同厂家生产的各种型号的运行不同系统的计算机能够相互通信。TCP/IP是一个一个协议族,它通常被认为是一个四个协议系统的组合。
TCP/IP协议族包括应用层、传输层、网络层、链路层。每个层负责不同的功能:
链路层:通常包括设备驱动程序与网络接口卡。不知道对不对,802.11其实就是在这个层上的一种协议,它采用不同的数据发送、接收格式,在上层与一般的TCP/IP协议族类似。
网络层:包括IP协议(网际协议,负责分组的选路),ICMP(Internet控制报文协议,Ping程序就是利用ICMP进行请求与应答,Traceroute则是用UDP进行IP路径的显示,它利用发送UDP数据与ICMP的回显,在发送第一个UDP数据是,使IP数据包中的TTL为1,当第一个路由器收到TTL为1或0,则路由器将不转发此IP数据报,以后每次使TTL加1则会回显下一个的路由选择,而在UDP数据报中要指定一个不可能的值作为目的端口,这样当目的地址收到TTL为1的数据报时,也会回显应答一个“端口不可达”的错误的ICMP报文,