<?php
//@author sgsheg//@time 9/29/*what's tcp/ip???+----------------------------------------------------------------------------------------+维基百科 TCP/IP协议TCP/IP协议包含一系列关于换联网基础的网络协议.
在目前使用最多的网络协议.最早源于美国国防部的ARPA网项目.TCP/IP模型也叫DoD模型.Department of Defense Model.TCP/IP字面上带有两个协议:TCP协议(传输控制协议)和IP协议(网际协议),是目前互联网的基石.最初的TCP/IP协议是由文顿.瑟夫和罗伯特.卡恩两位开发,慢慢的通过竞争战胜了其他一些网络协议的方案.蓬勃发展时间是1990年代.当时一些重要而可靠的工具的诞生也促进了互联网的蓬勃发展/
目前流行的IPV4已经接近她的上限!
缺点:1.地址只有32位,ip地址空间有限2.不支持服务质量,无法管理宽带和优先级以太网:Ethernet
令牌怀:Token Ring 首先是分层:1.链路层也叫做网络接口层,也就是我们计算机上对应的网络接口卡.它们一些来处理与电缆物理接口.2.网络层互联网层.处理分组在网络中的活动.例如分组在网络中的活动.网络协议层包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)/3.运输层TCP传输控制协议UDP用户数据报协议TCP为两台电脑之间提供可高的数据通信/4.应用层+---------------------------------------------------------------------------------------+每个Telnel服务器的端口号都是23每个FTP服务器的端号码都是21+---------------------------------------------------------------------------------+在linux下面:grep telnet /etc/services[root] grep telnet /etc/servicestelnet 23/tcptelnet 23/udprtelnet 107/tcptelnets 992/tcptelnets 992/udpskytelnet 1618/tcpskytelnet 1618/udphp-3000-telnet 2564/tcpttll-telnet 3083/tcptel-telnet 3083/udptelnetcpcd 3696/tcptelnetcpcd 3696/udpscpi-telnet 5024/tcpscpi-telnet 5024/udpktelnet 6623/tcpktelnet 6623/udp同理在linux下查看ftp的时候会出现
[root@localhost] #grep ftp /etc/servicesftp-data 20/tcpftp-data 20/udp#21 is registered to ftp,but also use by fspftp 21/tcpftp 21/udptftp 69/tcptftp 69/udp...................[root@localhost]# grep TFTP /etc/services
subntbcst_tftp 247/tcp subntbcst_tftp 3713/tcptftps 3713/tcptftps 3713/udp+---------------------------------------------------------------------------------+1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层或者是
应用层
主机到主机层Internet层网络接入层 FTP/TELNET/SMTP/PNS TFTP/SNMP/R-P小于1024 指明端口大于1024作为源端口向目标发起一个连接.TCP三次握手:
1.发送同步请求(seq=100;ctl=SYN),2.接受SYN,确认我收到了数据,seq=300 ack=101 ctl=syn,ack3.建立会话,seq=101 ack=301 ctl=ack-->这是时候数据开始建立+---------------------------------------------------------------------------------------+
TCP传输控制协议是一种面向连接的/可靠的/基于字节流的运输层(Translayer)通信协议.由IETF的RFC 793说明.TCP:Transmission Control ProtrolOSI模型:
即开放式通信系统互联参考模型.Open system Interconnection Reference Model是国际标准化(ISO)提出的一个试图使各种计算机在世界范围内互连wield网络的标准框架,简称OSI.国际标准化组织(International Orginization for Stanardization,简称ISO),是制造全世界工商业标准的各国国家标准机构代表的国际标准建立机构,总部设于瑞士日内瓦.
OSI模型:在指定计算机网络标准方面,起着重大作用的两大国际:国际电报与电话资讯委员会(CCITT),与国际标准化组织.虽然他们的工作领域不同,但是随着科技发展,通信与信息处理之间的界限开始模糊,也成了CCITT和ISO共同关心的领域.OSI将计算机网络体系(architecture)划分为以下几层:
7.应用层---Application Layer6.表示层---Presentation Layer5.会话层---Session Layer4.传输层---Transport Layer3.网络层---Network Layer2.数据链路层--Data Link Layer1.物理层--Physical LayerOSI/RM是英文Open Systems Interconnection Reference Model的缩写.
7.应用层(Application Layer)
应用层能与应用程式界面沟通,以达到展示给用户的目的.在此常见的协定有:HTTP/HTTPS/FTP/TELNET/SSH/SMTP/POP36.表示层Presentation Layer
主条目:表示层表示层能为不同的用户提供数据和信息的语法转换内码,使系统能解读成正确的数据,同时也提供压缩解压,加密解密.第五层:
会谈层(Session Layer)会谈层用于为通讯双方制定通讯方式,并建立,注销会话(双方通信)第四层:
Transport Layer传输层控制资料流量,并且进行侦错及错误处理,以确保通讯顺利.而传输端的传输层为封包加上了序号,方便接受端把封包重组为有用的资料或档案第三层:网络层(Network Layer)
网络层为资料传送的目的的地定址,再选择传送资料的最佳路线.第二层:资料链接层
目录:资料链接层首先资料链接层的功能在于管理第一层的位元元素,并且将正确的资料传送到没有传输错误的路线中.建立还有辨认资料开始以及结束的位置同时予以标记.另外,就是处理由资料受损,遗失甚至重复传输错误的问题,使后续的层级不受到影响,所以它é执行资料的侦错/重修或修正,还有决定设备何时进行传输.设备有Bridge桥接器和switch交换器第一层:实体层Physical Layer
物理层定义了所有电子以及物理设备的规范.其中特别定义了设备和物理媒介之间的关系,这包含了针脚,线缆规范,中继器,网卡,主机适配器以及其他的设备的设计定义.因为物理层传送的是原始的比较数据流,即设计的目的是为了保证当发送的信号为二进制1的时候,对方接收到的也是二进制1而不是二进制0.因而需要哪个设备有几个针脚. 在因特尔协议族(Internet protocol suite)中,TCP层是位于IP层之上的,应用层之下的中间层.不同主机的应用层之间经常需要可靠的,像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换.应用层向TCP层发送网间传输的,用8位字节表示的数据流,然后TCP包数据流分割成适当长度的报文段(通常该计算机连接的网络的数据链路层的最大传送单元MTU的限制).之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层.TCP为了保证不发生丢包,就给每一个包一个序号.同时,序号也保证了传动到接收端实体的包的按序接受.然后实体对已经成功接受的包发回一个相应的确认(AKC);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包(假设丢失了)将会被重传.TCP用一个校验(checksum)函数为检验数据是否有错误,在发送和接收时需要计算校验和.
TCP连接包括三个状态:连接建立,数据传送和连接终止.通路的建立:
tcp用三次握手(three-way handshake)过程中建立一个连接.在连接建立过程中,很多参数要被初始化,例如序号以保证按序传输和连接的强壮性.一个终端可以同时初始化一个他们之间的连接是可能的.但通常是一端打开一个接口socket然后监听另一方的连接,这就是通常所指的被动打开(passive open).服务器端被动打开以后,用户端就能开始建立主动打开(active open).1.客户端通过向服务器发送一个SYN来建立一个主动打开,作为三路握手的一部分.2.服务器端应当为一个合法的SYN回送一个SYN/ACK3.最后,客户端再发送一个ACK.这样就完成了三路握手,并进入了连接建立状态. 数据传输:在TCP的数据传送状态,很多重要的机制都保证了TCP的可靠性和强壮性.他们包括:使用序号,对收到的tcp报文段进行排序以及检测重复的数据;使用校验和来检测报文段的错误,使用确认和计时器来检测和纠正丢包或延时.序列号和确认:
在TCP的连接建立状态,两个主机的TCP层间要交换初始序列化(ISN:initial sequence number).这些序号用于标识字节流中的数据,并且还是对应用层的数据字节进行计数的整数.通常在每个TCP报文段中都有一对序号和确认号.TCP报文发送自己的字节编号为序号,而认为接收者的字节编号为确认号.