OSI中的层 功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
应用层
传输层
网络层
数据链路层
物理层
物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层
数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)
网络层:路由器、三层交换机
传输层:四层交换机、也有工作在四层的路由器
而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。
因此在这里详细解释一下这两个过程。
TCP三次握手
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。
客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1
TCP的全称为传输控制协议。这种协议可以提供面向连接的可靠的字节流服务。第二种协议为UDP全称为用户报文协议,它可以提供面向非连接的不可靠的点到多点的通信。这是两种协议的区别。
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
1.TCP使用窗口机制进行流量控制 。
2. 什么是窗口?
连接建立时,各端分配一块缓冲区(用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的 缓冲区尺寸剩余 缓冲区空间的数量)叫做窗口 。
用TCP还是UDP,那要看你的程序注重哪一个方面?可靠还是快速?(建立连接三次握手,超时重传,检验数据,流量控制等原因)
应用程序只能通过UDP方式发送广播。
一般情况下,如果调用sendto,只能向非广播地址发送数据报。如果要发送广播数据报,必须告诉内核,可以通过设置SO_BROADCAST套接口选项来做到这一点。
int on=1;
setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int));
Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中, 主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于 10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一 个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。
广播地址主要有两类
广播地址应用于网络内的所有主机
1)受限广播
它不被路由但会被送到相同物理网络段上的所有主机
IP地址的网络字段和主机字段全为1就是地址255.255.255.255
2)直接广播
网络广播会被路由,并会发送到专门网络上的每台主机
IP地址的网络字段定义这个网络,主机字段通常全为1,如 192.168.10.255
四种I P广播地址
受限的广播地址
受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚 至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
指向网络的广播
指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
指向子网的广播
指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往 128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为 255.255.254.0,该地址就不是指向子网的广播地址。
指向所有子网的广播
指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网 掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向 网络的广播。
广播和广播地址
1. TCP/IP协议栈中, 传输层只有UDP可以广播.
2. 只能对同一子网内部广播, 广播数据包不经过路由器.
3. UDP的广播地址为255.255.255.255
4. 在winsock实现中, 有一个选项对应是否允许广播.
必须调用setsockopt打开该选项.
5. 打开后, 用sendto向255.255.255.255发送的数据包全部广播.
很多局域网都定义了一个特殊的保留地址, 称为广播地址. 当信息头中目的地址域的内容为广播地址时, 该帧被局域网上所有计算机接收. 这个过程称为广播.
合法的广播地址就是主机的网络地址加上最大的主机号。网络地址通过机器的ip地址与子网掩码按位与得出,我们以ip地址为10.78.202.175 ,子网掩码为255.255.255.0。
为例来分析一下上面的几个概念
首先将这两个东西换算成二进制代码
ip地址:00001010.01001110.11001010.10101111
子网掩码:11111111.11111111.11111111.00000000
按位与之后得出网络地址:00001010.01001110.11001010.00000000
十进制表示就是10.78.202.0
这个网络地址理论上可以有254台主机
相关推荐
HCIA认证:深入解析OSI七层模型与TCP/IP协议簇的应用及功能
### OSI七层协议模型与TCP/IP四层模型详解 #### 一、为何采用分层设计? 在探讨OSI七层模型与TCP/IP四层模型之前,我们首先要理解为什么网络协议会选择分层设计的方式。分层设计的核心优势在于它能够极大地简化...
高层是TCP/IP协议栈的第五层和第六层,也是OSI参考模型的第五层到第七层。高层的主要功能是提供应用程序之间的通信服务。高层协议的主要作用是提供各种应用程序之间的交互服务。 TCP/IP体系结构 TCP/IP体系结构是...
一般而言,计算机网络体系结构参照OSI模型分为七层,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。但是TCP/IP协议族采用了更为简洁的四层结构,分别为应用层、传输层、网络层和数据链路层。OSI...
#### 一、OSI七层结构模型概述 在深入探讨以太网全硬件TCP/IP协议栈之前,我们首先需要了解网络通信的基础——OSI(Open System Interconnect)七层模型。这一模型由国际标准化组织ISO提出,用于描述不同计算机系统...
### OSI与TCP/IP模型精华快速记忆总结 #### 第一部分:OSI七层模型...通过以上总结,我们可以清晰地了解OSI七层模型与TCP/IP四层模型在结构、功能以及协议方面的差异与联系,为学习和理解网络协议栈提供了坚实的基础。
在这一卷中,读者将系统地学习到网络分层模型——即OSI七层模型的简化版,了解网络接口层、互联网层和传输层。书中对ARP(地址解析协议)和RARP(逆地址解析协议)的讨论,为理解网络硬件和IP地址之间的关系提供了...
TCP/IP协议栈是互联网通信的基础,它定义了网络设备如何互相通信的一套标准。这个协议栈分为四个主要层次,每个层次都有其特定的功能,确保数据能够准确无误地在网络中传输。 首先,我们来了解OSI七层参考模型。这...
#### 知识点三:OSI参考模型与TCP/IP协议族的关系 - **相同点**:两者都是采用分层架构,底层服务上层,都包含了应用层、传输层和网络层。 - **不同点**: - 层数不同:OSI参考模型共有七层,而TCP/IP模型通常被...
3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...
TCP/IP模型分为四层(在OSI七层模型的基础上简化而来):应用层、传输层、网络层和数据链路层。每一层都有其特定的功能和协议。 1. **应用层**:这是TCP/IP模型的最高层,包括HTTP(超文本传输协议)、FTP(文件...
TCP/IP协议栈通常分为五层模型(在OSI七层模型的基础上简化),从下到上依次是:物理层、数据链路层、网络层、传输层和应用层。每一层都有其特定的协议和功能: 1. 物理层和数据链路层:物理层处理实际的信号传输,...
嵌入式TCP/IP协议栈的设计需要遵循OSI七层模型的思想,但在实际设计过程中,考虑到嵌入式设备的资源限制和对网络功能的需求程度,并非所有协议都需要完整实现。简化后的嵌入式TCP/IP协议栈主要包括以下几个关键模块...
资料中提到两种网络模型:OSI七层模型和TCP/IP四层模型。这两种模型虽然层次划分有所不同,但都旨在描述网络通信的基本过程。 - **OSI七层模型**:分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层...
OSI 模型由七层组成,即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP 模型则由四层组成,即网络接口层、互联网层、传输层和应用层。 协议栈 协议栈是计算机网络中的一种软件结构,它是指...
它不完全遵循OSI七层模型,而是简化为四层,分别是:网络接口层、网络层、传输层和应用层。 1. 网络接口层:对应OSI模型的物理层和数据链路层,负责数据在物理媒介上的传输,包括以太网、无线局域网等各种网络接口...
1. **TCP/IP协议栈结构**:TCP/IP协议栈通常分为四层(在OSI模型中为七层),包括链路层、网络层、传输层和应用层。在Linux中,这些层对应的模块分别是:链路层的网卡驱动、网络层的IP协议处理、传输层的TCP和UDP...
9. **网络层次模型**:介绍OSI七层模型或TCP/IP四层模型,帮助读者理解不同层次的任务和接口。 10. **网络故障排查**:书中可能包含了一些诊断和解决网络问题的方法,帮助读者提升网络问题的排查能力。 尽管描述中...
网络基础模型 OSI 与 TCP/IP OSI 参考模型(Open System Interconnection Reference Model,OSI/RM)是由国际标准化组织 ISO 提出的一个网络系统互连模型。它定义了网络互连的七层框架(物理层、数据链路层、网络...