赞
踩
目录
协议栈:不同的协议栈里有不同的网络协议。相当于是一个容纳协议的客栈。
为应用程序提供了一个标准化的接口,方便后续同类型应用可以直接进行调用,统一标准;
进行数据格式的转换。确保同一份数据在不同系统下能正确的识别和理解。还能对数据进行加密、压缩、解压缩。
在通信双方之间建立、管理和终止会话。为操作系统中的应用程序提供一个进程号,用于区分本地不同的进程,可以让一台设备同时开启多个相同的应用。
建立管理和维护一次端到端的连接。用于描述一个唯一的端到端的连接。
经过这些,我们就清除明白传输层的作用了,也就是端口号的用处了
负责数据在每段链路上的正确转发,维护每段链路之间的正常通信。
目前主流的协议栈有:OSI协议栈和TCP/IP协议栈
OSI协议栈是国际标准化组织ISO提出的;
TCP/IP协议栈是一个民间组织IEEE提出的,该组织定义了网络中30%的网络协议;
(上三层由软件工程师来负责,而下四层(物理层-传输层)由我们网络工程师来负责)
例如:我们有一个www.baidu.com的网址,我们希望的是无论用什么样的浏览器打开,都能看到这个网址的内容,若有的浏览器能看有的不能看,那么会给用户带来很大的困扰。所以这个应用层提供了这样一个标准化的接口,(底层都是http协议),这样就能实现在任何浏览器应用软件下都能实现这样一个功能。
例如:我们常用的是windows系统,工作中常见的是Linux系统,那么在Linux中的数据内容,能正确的被我们windows系统识别、理解,就依靠表示层。
例如:我们在电脑上,登录QQ和微信。这时会话层就会分别给qq和微信一个进程号,这样QQ接受的内容就不会和微信里的冲突了。
例如:我有一个QQ号1(IP:10.10.10.10),要去给好友1(1.1.1.1)和好友2(2.2.2.2)聊天, 那么开启的两个会话就是端到端的连接(端口号)
五元组
SIP(源ip) DIP(目的ip) 协议类型(TCP/UDP) SPORT(源端口) DPORT(目的端口)
当10.10.10.10 给1.1.1.1和2.2.2.2发送消息时
(假设没有端口号或者源端口号相同)
SIP(源ip) DIP(目的ip) 协议类型(TCP/UDP) SPORT(源端口) DPORT(目的端口) 10.10.10.10 1.1.1.1 UDP 无/4000 无/1000 10.10.10.10 2.2.2.2 UDP 无/4000 无/2000 当1.1.1.1和2.2.2.2回包时
SIP(源ip) DIP(目的ip) 协议类型(TCP/UDP) SPORT(源端口) DPORT(目的端口) 1.1.1.1 10.10.10.10 UDP 无/1000 无/4000 2.2.2.2 10.10.10.10 UDP 无/2000 无/4000 这样,我们发现,当没有端口号时,回包只是单纯交换源目IP地址,同样是回复给QQ号1的(10.10.10.10)消息,具体是收到的两个包哪个是1.1.1.1发来的、哪个是2.2.2.2发来的,我们就不知晓了。
当端口号相同时, 源目ip交换,端口号交换后,10.10.10.10收到的两个包,都是给4000这个端口号的,而10.10.10.10当时发包给1.1.1.1和2.2.2.2的五元组里,源端口都是4000,这导致收包时,无法分清到底是谁给10.10.10.10回的。
经过这些,我们就清除明白传输层的作用了,也就是端口号的用处了
当10.10.10.10 给1.1.1.1和2.2.2.2发送消息时
(正确的方式是)
SIP(源ip) DIP(目的ip) 协议类型(TCP/UDP) SPORT(源端口) DPORT(目的端口) 10.10.10.10 1.1.1.1 UDP 4000 1000 10.10.10.10 2.2.2.2 UDP 5000 2000 当1.1.1.1和2.2.2.2回包时
SIP(源ip) DIP(目的ip) 协议类型(TCP/UDP) SPORT(源端口) DPORT(目的端口) 1.1.1.1 10.10.10.10 UDP 1000 无/4000 2.2.2.2 10.10.10.10 UDP 2000 无/5000 通过源目ip交换,源目端口交换后,收到的包就能很清楚分析出,同样是回复给10.10.10.10的消息,通过回包里的目的端口号(Dsport)4000是1.1.1.1回复的和5000是2.2.2.2回复的
一个服务器可以提供很多种服务,每个服务对应这一个端口号(http/80 、ftp/21),这样就避免了提供不同的服务需要很多个IP地址,也就是说 端口号充分提高了ip地址的重复率 。
当我请求某个服务时,就可以带上这个端口号(目的端口号)
当服务器给我回应的时候,就需要将我发送请求的的源端口号转换为目的端口号,回复我。
比如,当我开了两个页面请求不同的服务,有两个源端口号,那么相应的服务器在回复的时候,就要根据我的源端口号,来区分回复我对应的内容到我的两个界面上。
例如:在地图里,每个地址都有一个地名,xxx广场,zzz学校,ccc大道等。
在网络里,每一个地址也有一个地名,就是ip地址,用一串数字标识(比方192.168.1.1)
- 结合下四层(传输层-网络层-数据链路层-物理层)举例
-
- 【传输层】建立管理和维护一次端到端的连接。用于描述一个唯一的端到端的连接。
-
- P1--------------------------------------P2 (P1到P2是一个端到端的连接)
- 1.1.1.1 2.2.2.2
- 假设(光谷世界城) (华中科技大学)
-
-
- 【网络层】定义逻辑地址,ip的寻址和转发,并且选出最近的最优的路径。
-
- P1-------a----b----c-------d------------P2 (从光谷到华科有P1/a/b/c/d/P2共6个车站)
- 定义逻辑地址,寻址,选出P1到P2的最优路径
-
-
- 【数据链路层】负责每段链路的正确转发,维护链路的正常通信
- 链路(P1-a)(a-b)(b-c)(c-d)(d-P1)有五段链路
-
-
- 【物理层】用传输介质,例如网线,将每条链路连接起来
- 每个车站间道路施工
现在大部分90%的都用tcp/ip参考模型,(因为tcpip开源,不要专利费,不要钱=白嫖)
是将OSI参考模型的上三层合并为应用层(应用层、表示层、会话层→应用层)
和下两层合并为网络接入层(数据链路层、物理层→网络接入层)
只是将OSI参考模型的上三层合并为应用层(应用层、表示层、会话层→应用层)
OSI的网络层用的是CLNP
TCP/IP的网络层用的是IP
后面将会学到的协议
1.应用层Telnet远程登录
FTP、TFTP文件上传
SNMP简单网络管理协议
http超文本传输协议
https 有加密的http
SMTP发邮件
POP3收邮件
DNS域名解析
DHCP自动分配IP地址
ssh
bgp
2.传输层
TCP、UDP、OSPF
3.网络层
ICMP 因特网控制管理协议
IGMP 因特网组管理协议
IP协议
ARP
ISIS
VRRP
4.数据链路层
PPPoE 拨号上网
Ethernet 协议
PPP 协议
HDLC
ATM
FR
5.物理层
略
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。