@lwxyfer
2015-12-19T14:57:30.000000Z
字数 10076
阅读 1704
博客地址:http://blog.lwxyfer.com/547.html
From WIKI : https://en.wikipedia.org/wiki/OSI_model
The model partitions a communication system into abstraction layers.
open system internetconnection 是由国际标准化组织ISO制定。就是ISO制定了OSI
OSI模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。
OSI/RM(Open System Interconnection Reference Model)即开放系统互连基本参考模型。
物理层:以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等
数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等
网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等
传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等
应用层协议:DHCP ·DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等
对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成;发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递。
OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。
而传输层及以下各层的PDU另外还有各自特定的名称:
传输层——数据段(Segment)
网络层——分组(数据包)(Packet)
数据链路层——数据帧(Frame)
物理层——比特(Bit)
七层通信
TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:
1.应用层,对应着OSI的应用层、表示层、会话层
2.传输层,对应着OSI的传输层
3.互联层,对应着OSI的网络层
4.网络接口层,对应着OSI的数据链路层和物理层
TCP/IP是OSI简化版,但是TCP/IP 才是成功的。通常我们所讨论的还是从TCP/IP来解决问题的,也就是它是我们在互联网操作中最主要的协议。
FROM WIKI:https://en.wikipedia.org/wiki/Internet_protocol_suite
各个协议Header:https://nmap.org/book/tcpip-ref.html
The Internet protocol suite is the computer networking model and set of communications protocols used on the Internet and similar computer networks. It is commonly known as TCP/IP, because its most important protocols, the Transmission Control Protocol (TCP) and the Internet Protocol (IP) were the first networking protocols defined in this standard.
TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。
通过图片可以看到对应的包含的协议。 并且了解每个协议的原理与作用。
网络接口层
物理层是定义物理介质的各种特性:
1、机械特性;
2、电子特性;
3、功能特性;
4、规程特性。
数据链路层是负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据包,交给IP层。
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站还有DHCP服务。
常见的接口层协议有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM等。
网络层
负责相邻计算机之间的通信。其功能包括三方面。
处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
处理路径、流控、拥塞等问题。
网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)
控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。
ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
传输层
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。
传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。
应用层
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。
http://baike.baidu.com/subview/8370/15816170.htm
https://en.wikipedia.org/wiki/Internet_Protocol
在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。
IP has the task of delivering packets from the source host to the destination host solely based on the IP addresses in the packet headers. For this purpose, IP defines packet structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.
功能:
- Datagram construction
- IP addressing and routing
IPv6是Internet Protocol Version 6的缩写,其中InternetProtocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
与IPV4相比,IPV6具有以下几个优势:
IP协议实际上是一套由软件、程序组成的协议软件,它把各种不同“帧”统一转换成“网协数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。
那么,“数据包(data packet)”是什么?它又有什么特点呢?数据包也是分组交换的一种形式,就是把所传送的数据分段打成 “包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。这样,在开始通信之前就不需要先连接好一条电路,各个数据包不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提高了网络的坚固性和安全性。
数据包格式如下:
每个数据包都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据包不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要IP具有分组打包和集合组装的功能。
在传送过程中,数据包的长度为30000字节(Byte)(1字节=8二进制位)。
另外,特别注意的是,ip数据包指一个完整的ip信息,即ip数据包格式中各项的取值范围或规定,如版本号可以是4或者6,ip包头长度可以是20字节-60字节,总长度不超过65535字节,封装的上层协议可以是tcp和udp等。
如今的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。
地址格式为:IP地址=网络地址+主机地址 或 IP地址=网络地址+子网地址+主机地址。
代理IP 就是代理服务器 Proxy Sever
WIKI有对TCP有完整的归纳:
参考链接:
http://www.networksorcery.com/enp/protocol/tcp.htm -- TCP Reference
http://baike.baidu.com/view/1003841.htm
http://www.networksorcery.com/enp/protocol/tcp.htm#Glossary
http://coolshell.cn/articles/11564.html
https://tools.ietf.org/html/rfc793
TCP的内容比较杂乱多,而且复杂。包括 TCP头格式,状态,传输,最主要的连接三次握手!!!
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
一次完整的数据传输:
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
TCP provides reliable, ordered, and error-checked delivery of a stream of octets between applications running on hosts communicating over an IP network. TCP is the protocol that major Internet applications such as the World Wide Web, email, remote administration and file transfer rely on. Applications that do not require reliable data stream service may use the User Datagram Protocol (UDP), which provides a connectionless datagram service that emphasizes reduced latency over reliability.
数据格式
数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)
名词英文解析:http://www.networksorcery.com/enp/protocol/tcp.htm#Glossary
详情:http://baike.baidu.com/view/1003841.htm
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
Statu diagram 状态图
TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。
为了动态地设置重传时的timeout,TCP引入了RTT——Round TripTime,也就是一个数据包从发出去到回来的时间。
这样发送端就大约知道需要多少的时间,从而可以方便地设置Timeout——RTO(Retransmission TimeOut),
以让我们的重传机制更高效。
WIKI : https://en.wikipedia.org/wiki/Sliding_window_protocol
A sliding window protocol is a feature of packet-based data transmission protocols. Sliding window protocols are used where reliable in-order delivery of packets is required, such as in the Data Link Layer (OSI model) as well as in the Transmission Control Protocol (TCP).
TCP必需要解决的可靠传输以及包乱序(reordering)的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。
所以,TCP引入了一些技术和设计来做网络流控,Sliding Window是其中一个技术。 前面我们说过,TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。
TCP Vegas 拥塞控制算法
HSTCP(High Speed TCP) 算法
TCP BIC 算法
TCP WestWood算法
《Congestion Avoidance and Control》(PDF)
http://ee.lbl.gov/papers/congavoid.pdf