TCP/IP协议模型详解一

1、TCP/IP简介

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)于1973年公布,1984年,TCP/IP协议得到美国国防部的肯定,成为多数计算机共同遵守的一个标准。TCP/IP协议是指能够在多个不同网络间实现信息传输的协议簇。也称作网络通讯协议,对互联网中各部分进行通信的标准和方法进行了规定。使不同型号、不同厂家、运行不同操作系统的计算机之间通过TCP/IP协议栈实现相互间的通信。可以这样的理解,如神化小说里的各种功法,推动各种宝物、仙兵、神器发挥作用。

TCP/IP的协议由IETF讨论制定,TCP/IP是一个协议群,其中需要标准化的协议,被列入RFC文档并在互联网上公布上。RFC包含协议规范内容和协议的实现和运用相关信息。下面是几个常见的RFC文档,查询网址:www.rfc-editor.org/rfc/。

IPv4对应的RFC编号RFC791、RFC919、RFC922
IPv6对应的RFC编号RFC2460
ICMP对应的RFC编号RFC792、RFC950

IP网络典型结构
IP网络典型结构

1.1、OSI网络架构模型与TCP/IP模型

OSI模型是由七层组成,从下到上分别依次是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。而在TCP/IP协议中,它们被简化为了四个层次。
OSI网络架构模型与TCP/IP模型
TCP/IP模型分为4层结构,从下到上分别依次是应用层、传输层、网络层、网络接口层。

2、TCP/IP模型各层的功能

在这里插入图片描述

从图中可以看出TCP/IP就是一协议群包含各层的协议,应用层提供应用程序网络接口,为各种应用程序服务提供输出接口;传输层建立端到端连接;网络层提供寻址和路由选择;网络接口层提供物理介质访问和数据流传输服务。

2.1、应用层协议

在主机使用各种应用程序,来实现所需的功能比如上网聊天、看视频、发邮件、打游戏、做开发、绘图等,应用层就是为应用进程提供服务的。对应OSI模型7、6、5层的功能。最常用的是HTTP协议,传输的是html格式数据,通过浏览器来显示图片、声音、文字、视频。

  • 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议。
  • 对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。
  • 负责建立、管理和终止应用程序之间的会话。

A、在应用层常常需要使用的协议有很多,运行在TCP协议上的协议:

  • HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
  • HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),HTTPS 在HTTP 的基础下加入SSL,通过传输加密和身份认证保证了传输过程的安全性。
  • FTP(File Transfer Protocol,文件传输协议),通过身份验证登录,操作目录,输入文件内容及主机之间复制文件。
  • SSL(安全超文本传输协议),HTTP协议的安全版本。
  • FTP(File Transfer Protocol文件传输协议),用于文件传输。
  • Finger Server用于获得用户信息 。
  • LDAP轻型目录访问协议。
  • NNTP(Network News Transfer Protocol,新闻组传输协议)。
  • POP3(Post Office Protocol, version3,邮局协议),收邮件用。
  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
  • TELNET(Teletype over the Network,Telnet协议),是Internet远程登录服务的标准协议和主要方式。
  • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。 finger用户信息协议检查某个人是否登录了。
  • IMAP4(Internet Message Access Protocol,IMAP,因特网信息访问协议),指从邮件服务器上获取Email的信息或直接收取邮件的协议。

B、运行在UDP协议上的协议:

  • BOOTP(Boot Protocol,启动协议),应用于无盘设备。
  • NTP(Network Time Protocol,网络时间协议),用于网络同步。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
  • TFTP(Trivial File Transfer Protocol,简单文件传输协议),只支持文件传输,不支持交互;没有列目录功能,不能进行身份鉴别。
  • SNMP (Simple Network Management Protocol,简单网络管理协议),用于在 IP网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。

C:同时使用TCP和UDP协议应用层服务

  • SOCKS(Socks: Protocol for sessions traversal across firewall securely) 防火墙安全会话转换协议,用程序能更方便安全地使用网络防火墙所提供的服务。
    SLP(Service Location Protocol,服务定位协议 ),方便网络客户发现网络上可用的服务。
  • QQ腾讯QQ协议
  • FANP(Flow Attribute Notification Protocol,流属性通知协议),负责管理直通方式下的分组转发功能。
  • MSN消息服务
  • DNS域名解析协议(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
  • ECHO(Echo Protocol,应答协议),把接收到的信息按照原样返回;作用:主要用于检测和调试(运行在TCP和UDP协议上)。
  • XMPP可扩展通讯和表示协议,用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。

2.2、传输层

传输层也称主机到主机层。使应用程序之间互相通信,计算机运行时,通常同一时间运行着多个程序,哪究竟是哪些程序与哪些程序在通信?通过端口号来识别这些程序,TCP协议和UDP协议是传输层的两种传输控制方式。

2.2.1、端口号是什么?

端口号是各种应用服务的编号,用来识别是哪一种服务?我们最为熟悉是80端口,HTTP(超文本传输协议)使用的是80端口,我们打开浏览器是总会看到http://www.XXX.com,上网访问网页也就是查找网络服务器内资源的过程,超文本传输协议http的端口就是80,使用了80端口标识了使用的哪种应用。

在windows任务管理器,会看应用程序和端口号。
在这里插入图片描述
通过端口识别程序

通过传输协议和端口来识别应用服务,各种应用程序之间的数据发送和传输就可以以端口这一编号来识别。A程序通过80端口访问B数据库。

下面是一段java程序的代码。都有用户名和密码,然后使用6379这个端口调用redis,使用3306这个端口号调用mysql数据库,而不在里面写redis名称和版本号来调用。因为6379就代表redis这一程序。

centos pro:
redis:
ip: 192.168.1.135
port: 6379
password: SbtyMveFGf54zTk9dH0dpCmyStPERqjy
mysql:
database: centos_defaults # 默认库
ip: ${MYSQL_IP:192.168.1.135} 
username: root
password: widggkwocPjfWsd024rssdEhlfO2kLw427fs
port: 3306

端口号也被称为程序地址,分为三种:公认端口号,已注册的知名程序的端口号,范围:0-1023;注册端口,根据自己的需要自己定义,公司和个人开发程序自定义的,在IANA(即互联网号码分配局,管理端口注册 )注册。范围:1024-49151;临时端口号,不能注册,临时用一下,范围:49152–65535。

常见端口:

程序名称端口号
Echo 应答协议7/tcp、udp
DNS 域名解析协议53/tcp、udp
FTP 文件传输协议21/tcp
Finger Server用于获得用户信息79/tcp
HTTP 超文本传送协议80/tcp
HTTPS 安全超文本传送协议443/tcp
IMAP4 收取邮件的协议220/tcp
LDAP、ILS轻型目录访问协议389/tcp
NNTP 新闻组传输协议119/tcp
POP3 收邮件用10/tcp
SOCKS 穿过防火墙访问161/tcp、udp
SNMP 简单网络管理协议161/udp
SSH 安全登录22/tcp
SMTP 发送邮件25/tcp
Telnet 远程登录23/tcp
TFTP 简单文件传输协议69/udp
WINS复制42
  • 15
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0与1之旅

创作不易请给予一点帮助和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值