菜鸟浅谈TCP/IP

前几天郁闷了一阵子,但是饭还是要吃,网还是要上,技术还是要学的。所以现在回到这个集体中,争取每个月都能给刚刚接触网络技术的朋友一点自己学习中的体会。好了,废话不说了,开始进入正题。
TCP/IP协议的简单教材在网上很多了,但是我总觉得有点不是很容易让人上手。我画蛇添足的再说点吧,希望可以让新人容易上手。
TCP/IP由上至下分为应用层(Application layer),传输层(Transport layer)——其实应称为:主机对主机传输层(Host-Host Transport layer),网际层(Internet layer),网络存取层(Network Access layer)——其实就是我们说的物理层。
1 Network Access layer
有关物理层的东西都是一些专家级的东西,有兴趣的新人可以参看
·RFC826 地址解析协议(Address Resolution Protocal ARP)点击下载(英文) 点击下载(中文)
·rfc 894 以太网的IP数据报传送标准.点击下载(英文) 点击下载(中文)
2 Internet layer
主要功能:
a 定义数据报,它是Internet中的基本传送单位
b 定义Internet的寻址方式
c 在Network Access layer和Host-Host Transport layer间移动数据
d 决定数据报到远程主机的路由
e 执行数据报的分解(fragmenting)及重组
这层中最重要的是ICMP(Internet Control Message Protocal 网际控制报文协议).有关RFC792定义可以看 点击下载(英文) 点击下载(中文)
3 Host-Host Transport layer
这层中我只想说一点,这也是方便大家看扫描原理的理解.
在说之前先说一个定义:握手:在数据传输之前,两端点间交换控制信息以建立连接的过程叫"握手"
在扫描器原理中大家一定常看到关于TCP的扫描原理,这其中有一个"三次握手"的说法.个人认为实在不妥.为什么?请看握手的定义.看了这么多人的文章,只有雾中鸟前辈的说法较准确.个人认为叫"三段式握手"更好.现在来详细说一下这个过程.首先,发起方A主机给B主机一个数据段,其中设置了同步序号(Synchronize sequence number SYN)位.这个数据段告诉B主机,A希望建立连接以及A将使用的数据段起始序号.B主机用设置了ACK(ackonwledement)以及SYN位的数据段回应A.B的数据段向A确认,收到A的数据段.同时也告诉A,B将使用的起始序号.最后A再传送一个数据段给B,通知收到数据段.到此完成整个"三段式握手".从这以后才开始数据的传输.在数据传输完毕以后再来一次"三段式握手"来结束连接.
在传输层里除了TCP还有一个重要的协议是UDP.这个协议相信大家对他最熟悉的是提供"不可靠的连接"那么这个不可靠连接是指什么能?它只是指不提供验证数据正确到达网络彼端的技术.UDP利用报文头中的第一字中的"源端口"(source port)和"矢端口"(destination port)号码,将数据传输给正确的应用程序.
传输层就简单的说这么多.
4 Application layer
这个是大家常用的东东,网上很多有关TCP/IP的教材说的也够清楚了.这里就简短的说一下.这层主要包括:telnet ,FTP,SMTP,HTTP,DNS(Domain Name Service域名服务协议),OSPF(Open Short Path First 开放式最短路由优先协议),NTS这些协议 .

最后补充一些TCP/IP对不同层次使用的数据的不同名称.方便以后大家在看文章的时候理解使用的是何种协议.使用TCP的应用程序称数据为"流"(stream),使用UDP的应用程序称数据为"报文"(message).TCP把数据叫做"数据段"(segment),UDP称它的数据结构为"分组包"(packet).网际层将所有的数据视为区块. 称为"数据报"(datagram),低层网络传送的数据一般称为"分组包"或"帧"(frame).
如要转载请注名蓝盾联盟.jimmyfu

Published At
Categories with 网络技术
comments powered by Disqus