计算机网络基础知识复习汇总:计算机网络基础知识复习

HTTP协议的解析:剖析 HTTP 协议

一个系列的解析文章:

1、计算机的网络体系          

 
         

  • 网络接口层:对应OSI物理层和数据链路层并实现与他们相同的功能。其中包括LAN和WAN的技术细节,也称为主机到网络层

    • LAN:IEEE802.2/3 IEEE802.5 FDDI
    • WAN:HDLC SLIP PPP FrameRelay ATM
  • 互联网络层运送数据包,将数据从任何相连的网络送到目的地,而不在乎走的是那个路径或网络。管理这一层的特定协议称为互联网络协议(IP)。最佳路径选定和数据包交换都发生在着一层。实现的是不同网络连接组成更大网络的问题。
  • 运输层主要负责处理有关服务质量等事项,如可靠度、流量控制和错误校正。该层可以提供不同服务质量、不同可靠性保证的传输服务,并且协议发送端和目标端的传输速度差异。这一层也称为主机到主机层。主要解决如何区分不同应用程序的问题,端口号。
  • 应用层:包括会话层和表示层的功能,用来建立应用层来处理高层协议、有关表达、编码和会话控制。TCP/IP将所有应用程序有关的内容都归为这一层,并保证为下层适当地将数据数据封装成数据包。大部分TCP/IP实现都会提供以下通用程序:
    • Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
    • FTP文件传输协议,端口号23:用于上传下载
    • SMTP简单邮件传送协议,端口号25
    • SNMP简单网络管理协议
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输

2、TCP/IP的特点

  • TCP/IP不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。
  • TCP/IP是一种因特网标准,最大的优势是其具有很好的可路由性。
  • TCP/IP可以跨越多个网段的协议,由于其携带了网络层的信息和编址信息,这些信息可由路由器理解。
  • IP数据包的最长不超过65535个字节,最小不小于20个字节
  • IP协议是一种不可靠、无连接的协议,意味着它不保证数据的可靠传输。TCP/IP协议群中更高层协议可使用IP信息确保数据包按正确的地址进行传输。注意到IP数据报并不包含一个校验和部件,IP数据报报头校验和仅仅验证IP报头中的路由信息的完整性。如果当数据包被接收时伴随信息的校验和值不正确,则数据包将被认为已经破坏并被抛弃,同时,一个新的数据包将被发送。
  • IP层是点到点的连接,即一台主机与另一台主机之间的连接
  • 传输层则是端到端的连接,即一台主机上的一个应用程序到另一台主机上的对应应用程序之间的连接

3、协议的三要素

  • 语法:传输数据的格式(IP数据报的报头20字节)
  • 语义:每个字段的值表示什么意思
  • 时序:

4、传输层协议

  • TCP:Transmission Control Protocol,传输控制协议,提供的是可靠的、面向连接的协议,传输效率低

    • Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
    • FTP文件传输协议,端口号23:用于上传下载
    • SMTP简单邮件传送协议,端口号25
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输
  • UDP:User Datagram Protocol,用户数据报协议,提供的是不可靠的、无连接的服务,传输效率高
    • TFTP简单文件传输协议,端口号69
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • NTP网络时间协议,端口号123
    • RPC远程过程调用,端口号111
    • QQ 端口号8000

5、TCP建立连接三次握手

  • SYN表示请求建立连接标志位,ACK是确认标志位
  • ACK的值应该是请求数据包中的seq+1
  • 应用:TCP半连接攻击

6、TCP断开连接四次握手

  • FIN表示断开连接的标志位,为1表
  • 示请求断开连接

7、流量控制和差错控制

  • TCP的流量控制通过滑动窗口来控制,UDP没有流量控制
  • TCP的差错校验通过序号、ACK确认以及各种标志位的识别来进行差错校验,UDP只有校验和来提供差错校验,需要上层协议来提供差错校验,eg:TFTP

8、ARP协议:地址解析协议

  ARP协议是一个互联网络层协议,它获取主机或节点的MAC地址(物理地址)并创建一个本地数据库以将MAC地址映射到主机IP(逻辑)地址上。ARP协议与IP协议紧密协作,因为IP在指导发送数据到目标主机之前必须具有目标主机的物理地址,为使ARP更加有效,计算机在一个缓冲区保存已经知道的IP-MAC地址映射表,这样就无需广播冗余请求。arp -a命令进行查询

9、ICMP协议:网络控制数据包协议

  ICMP协议位于TCP/IP模型互联网络层的IP协议和TCP协议之间ICMP消息通过IP数据报传送,它不提供错误控制服务,被用来发送错误和控制信息。ICMP常用语诊断实用程序中,如ping命令和Tracert命令。可以用ICMP协议来检测双向通路的

  ICMP协议定义了很多信息类型:

    • 目的地不可达
    • TTL超时(大多128跳)
    • 信息请求
    • 信息应答
    • 地址请求
    • 地址应答

  

TCP/IP协议学习笔记的更多相关文章

  1. tcp/ip协议学习笔记一

    一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...

  2. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  3. TCP/IP协议学习(五) 基于C# Socket的C/S模型

    TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...

  4. TCP/IP协议精华笔记

    1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...

  5. TCP/IP协议学习-1.概述

    目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...

  6. TCP/IP协议学习(四) 协议概述

    生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...

  7. TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理

    目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...

  8. TCP/IP协议学习和理解

    TCP:Transmission Control Protocol-传输控制协议 IP:Internet Protocol-网络协议 TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP ...

  9. TCP/IP协议学习

    计算机网路学得不好,首先先放个OSI七层网络模型吧 在协议的控制下,上层对下层进行调用,下层对上层进行服务, 上下层间用交换原语交换信息.这样可以提高传输速率,并且保证数据安全,所以说其实每一层都有存 ...

随机推荐

  1. ubuntu fix the grub boot(need Internet)

    sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot- ...

  2. UIImagePickerController 获取相片视频

    1.UIImagePickerController的静态方法: imagepicker = [[UIImagePickerController alloc]init];    //UIImagePic ...

  3. 解决Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的报错问题

    写jsp加载数据驱动以后老是提示Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的错误,然而改成 ...

  4. docker 源码分析 一(基于1.8.2版本),docker daemon启动过程;

    最近在研究golang,也学习一下比较火的开源项目docker的源代码,国内比较出名的docker源码分析是孙宏亮大牛写的一系列文章,但是基于的docker版本有点老:索性自己就git 了一下最新的代 ...

  5. javaweb--上传文件UploadServlet1.java

    package cn.itcast.web.servlet; import java.io.File;import java.io.FileOutputStream;import java.io.IO ...

  6. Libgdx 开发指南(1.2) 应用框架——模块概览

    模块概览 引言 LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成. Input:为所有平台提供一致的输入模型与处理器.支持键盘.触屏.加速度传感器与鼠标. Graphics:使用硬件 ...

  7. Modules

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. React Native的组件ListView

    React Native的组件ListView类似于iOS中的UITableView和UICollectionView,也就是说React Native的组件ListView既可以实现UITableV ...

  9. 黑马程序员:Java编程_动态代理

    =========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 长沙人从长沙的代理商手中买宏基电脑和直接跑到宏基总部买电脑,最终的主体业务目标有 ...

  10. POJ 3176 简单DP

    Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16448 Accepted: 10957 Descrip ...