ip协议
一、应用层
1、Telnet:常用于服务器远程控制,它使用虚拟终端机的形式,提供以字符串命令为主的双向交互功能。由于传统的Telnet会话数据没有加密,目前很多服务器都改用了更安全的SSH
注:SSH (Secure Shell)是一种加密的网络传输协议,通过创建安全隧道来实现客户端与服务器间的连接,常用于远程登录系统
2、FTP(文件传输协议 File Transfer Protocol):是一个8位的客户端-服务器协议,FTP的缺点是有极高的延时。
FTP服务一般运行在20与21端口,20用于传输数据流,21用于传输控制流。
//运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。(例如携程的注册邮箱名)
3、SMTP(简单邮件传输协议 Simple Mail Transfer Protocol):指定一个消息的接收者(被确认存在),传输消息文本。使用的TCP端口为25。
SMTP是一个“推”协议,不支持从远程服务器“拉”数据,要做到这点,必须使用POP3或者IMAP(如用outlook管理自己的邮箱时,就需要打开邮箱的IMAP功能)。
4、HTTP(超文本传输协议 HyperText Transfer Protocol)
//URL:统一资源标识符,用于标识通过HTTP、HTTPS协议请求的资源
//当前的HTTP实现标准版本为:HTTP/2 (于2015年批准)
客户端(用户代理程序)的请求通常被发送到服务器(源服务器)80端口上,HTTP可以在任何互联网上实现,它假定下层协议提供数据传输,因此在TCP/ip协议中,使用TCP作为传输层。
//收到HTTP请求后,服务器会返回一个状态,通常 200 代表“OK”
(1)HTTP的请求方法
(至少实现GET与HEAD(这两者都属于安全方法,因为它们只用于获取资源信息,而不做其他请求意义),其他方法为可选)
GET | “显示”请求,只用于读取数据,GET可被网络蜘蛛等随意访问 |
HEAD | 请求资源,但不传回文本部分,用于在不获取资源全部内容的情况下提取其元信息 |
POST | 上传表单数据等,可以创建或修改资源 |
PUT | 向指定位置传输最新内容 |
DELETE | 请求删除资源 |
TRACE | 显示服务器收到的请求,通常用于测试 |
//“幂等”的请求:在不考虑诸如错误或者过期等问题的情况下,若干次请求的副作用与单次请求相同或者没有副作用
(2)HTTP/1.0 与 HTTP/1.1的区别
HTTP/1.0在代理服务中仍被广泛使用
HTTP/1.1后引入持续连接机制,此前TCP连接在每次请求/回应后关闭,多次运行TCP交握程序会延长等待时间
HTTP/1.1支持在应答前持续发送请求(通常为2个),称为“流线化”
HTTP/1.1相较与HTTP/1.0的区别在于——
缓存处理 |
带宽优化以及网络连接的使用(默认使用持久连接)(通过引入分块传输编码、管道等改进带宽、滞后感) |
错误通知的管理 |
消息在网络中的发送 |
互联网地址的维护 |
安全性与完整性 |
(3)状态码
1XX 消息 | 请求已被服务器接收,继续处理 |
2XX 成功 | 请求已被服务器成功接收、理解 |
3XX 重定向 | 请求仍需要后续操作 |
4XX 请求错误 | 词法错误或者无法被执行 |
5XX 服务器错误 | 在处理某个正确请求时,服务器发生错误 |
//405 ——资源不支持请求方法
//501 ——服务器不支持请求方法
//请求行和标题必须以<CR><LF>作为结尾。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。
5、DNS(域名系统 Domain Name System)
实际上是一个提供 域名与IP地址 的相互映射的数据库。通常使用TCP与UDP的端口53,域名的总长度不能超过253字符,每一级域名长度不能超过63字符。
DNS查询的两种方法:
(1)递归:DNS客户端常用一般是递归服务器
(2)迭代:DNS服务器间通常采用迭代查询方式
//图片来源于https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F
二、传输层
1、TCP(传输控制协议 Transmission Control Protocol)
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层(IP层提供不可靠的包交换)。
TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
接收端实体会对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。
(1)TCP创建连接(三次握手)
客户端通发送一个SYN并且把这段连接的序号设定为随机数A→
服务器端为合理的SYN返回一个SYN/ACK包,ACK的确认码为 A+1,同时这个包本身又带有一个随机产生的xu序号B→
客户端收到包后再次发送一个ACK,服务器收到这个ACK后,连接就建立了
此时,包序号为A+1,响应号为B+1
在linux中,若没有收到最后的ACK,服务器会重复发送SYN/ACK包(默认发送五次),若总共经过63s后无回应,就会断开连接。
(2)可靠传输:发送与接收时包都有序列号,通过接收方返回的ACK包可以确认对方已经接收的数据字节位置,发送方通过检测丢失的传输数据并且重新传输他们,确保了数据传输的可靠性。
(3)超时重传
(4)校验和(16位)
TCP校验和也包括了96位的伪头部,其中有源地址、目的地址、协议以及TCP的长度
(5)TCP的现代实现包含四种相互影响的拥塞控制算法: 慢开始, 拥塞避免, 快重传, 快恢复
(6)选择确认(SACK):允许接收方确认它成功收到的分组不连续块
(7)连接终止(四次握手)
(8)状态编码
2、UDP(用户数据报协议 User Datagram Protocol)
UDP是不可靠的数据报协议,因为UDP不需要应答,所以它的来源端口可选。由于缺乏可靠性且属于非连接导向协议,UDP应用一般必须允许一定量的丢包、出错和复制粘贴。
流媒体是典型的UDP应用。
三、网络层
1、IP(网络协议Internet Protocol)
//注:IP可以指IP网络协议,也可以指IP地址,这两者是不等的
IP用于分组交换数据,IP的第一个架构是IPv4,它仍然是最主要的互联网协议,尽管目前世界各地正在积极部署IPv6。
(1)IP封装
数据在IP协议中传送中,被封装为数据报文(数据包=头(控制信息)+负载(信息数据)),IP协议是一种“尽最大努力交付”的数据包传输机制。
将IP地址解析为相应的数据链路地址的方法:IPv4(地址解析协议ARP)、IPv6(邻居发现协议NDP)
(2)可靠性
互联网协议提供的唯一帮助是,IPv4规定通过在路由节点计算校验和来确保IP数据报头是正确的。这个带来的副作用是当场丢弃报头错误的数据报文。在这种情况下不需要发送通知给任一个终端节点,但是互联网控制消息协议(ICMP)中存在一个机制来做到这一点。
但是,IPv6为了快速传输已经放弃了计算校验和的使用。
对这些可靠性问题的更正是一个上层协议的责任。(TCP)
(3)版本
IPv4 有32位地址
IPv6 有128位地址
2、ICMP(互联网控制消息协议)
常用于TCP/IP网络中发送控制消息,ICMP是IP的主要部分,ICMP属于不可靠协议。
3、ARP(地址解析协议,IPv4采用)(Address Resolution)
ARP 通过 解析网路层地址 来寻找 数据链路层地址 ,即通过网络地址(例:IPv4)来定位MAC地址。
在以太网中使用IP协议时,因为在以太网与上层IP协议中,只含有IP地址信息,所以需要ARP协议根据主机的IP地址找到其MAC地址,这就是地址解析。
(1)查看ARP缓存表
Linux:在shell中输入 arp
/****************************************以太网**********************************************/
以太网是目前应用最普遍的计算机局域网技术。
它实现了网络上无线电系统多节点发送信息,每个节点必须获取以太才能传送信息。
在以太网中规定,在局域网中,一台主机如果想跟另一台主机通信,必须知道目标主机的MAC地址。
/*******************************************************************************************/
4、RARP(逆地址解析协议)
用于将MAC地址转换为IP地址
相关阅读
在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在so
一、TCP协议1.网络模型1)七层网络模型层数名字主要功能对应的典型设备传输单位7应用层提供应用程序间通信计算机:应用程序,如FTP、SM
本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养。一、TCP/IP模型TCP/IP协议模型(Tr
服务端客户端通信例子:socket tcp 通信1,socket tcp通信2,udp使用讲解,socket udp通信例子 1. TCP/IP协议 叫做传输控制/网际协议,又