tcp协议

TCP/IP协议的认识

人盡茶涼 提交于 2020-04-08 11:47:00
TCP/IP协议的认识 一、简介 TCP/IP协议是一个协议集合。大家叫的时候方便说,所以统称为TCP/IP。 HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议在整个网络流程中的地位,也能更加充分的理解HTTP协议。 TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为四层:应用层、传输层、网络层、数据链路层。 二、与HTTP 关系密切的协议 : IP、TCP 和 DNS 1、IP协议: IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址,和MAC地址(Media Access Control Address)。 2、TCP协议 如果说IP协议是找到对方的详细地址。那么TCP协议就是安全地把东西带给对方。各有分工,互不冲突。 TCP属于传输层,提供可靠的字节流服务,为了确保信息能够确保准确无误的到达,TCP采用了著名的三次握手策略(three-way handshaking) 3、DNS DNS(Domain names System) 和HTTP协议一样是处于应用层的服务,提供域名到IP地址之间的解析服务。 下面是我们访问一个网页,各种协议在里面起的作用: 参考链接:https://www.cnblogs.com/roverliang/p/5176456.html 来源: https://www.cnblogs

Tcp面试相关

丶灬走出姿态 提交于 2020-04-07 21:26:25
https://mp.weixin.qq.com/s/ZWtXXUtDy7-mHflOFF03iQ 这里总结的很好,补充一下: MTU(Maximum Transmission Unit)最大传输单元,在TCP/IP协议族中,指的是IP数据报能经过一个物理网络的最大报文长度,其中包括了IP首部(从20个字节到60个字节不等),一般以太网的MTU设为1500字节,加上以太帧首部的长度14字节,也就是一个以太帧不会超过1500+14 = 1514字节。 如上图所示,MTU指的都是一个物理网络之中的。在以太网中,如果上层协议交给IP协议的内容实在是太多,使得一个以太帧超过了1514字节,那么IP报文就必须要分片传输,到达目的主机或目的路由器之后由其重组分片。 MSS MSS(Maximum Segment Size,最大报文段大小,指的是TCP报文(一种IP协议的上层协议)的最大数据报长度,其中不包括TCP首部长度。MSS由TCP链接的过程中由双方协商得出,其中SYN字段中的选项部分包括了这个信息。如果MSS+TCP首部+IP首部大于MTU,那么IP报文就会存在分片,如果小于,那么就可以不需要分片正常发送。 一般来说,MSS = MTU - IP首部大小 - TCP首部大小 MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”

网络编程

限于喜欢 提交于 2020-04-07 21:16:35
一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好。但是如果这两个程序之间想要传递一个数据,你要怎么做呢? 这个问题以你现在的知识就可以解决了,我们可以创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了。 但是当你的a.py和b.py分别在不同电脑上的时候,你要怎么办呢? 类似的机制有计算机网盘,qq等等。我们可以在我们的电脑上和别人聊天,可以在自己的电脑上向网盘中上传、下载内容。这些都是两个程序在通信。 回到顶部 二.软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~ 1.C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B/S即:Browser与Server

go语言系列-TCP编程

早过忘川 提交于 2020-04-07 21:14:59
TCP编程 Go的主要设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端,程序必不可少也是至关重要的一部分 网络编程基本介绍 网络编程有两种 TCP socket编程,是网络编程的主流。之所以叫Tcp socket 编程,是因为底层基于Tcp/ip协议的。比如:QQ聊天 b/s结构的http编程,使用浏览器去访问服务器时,使用的就是http协议,而http底层依旧是用tcp socket实现的。比如:京东商城【属于go web开发范畴】 计算机间要相互通讯,必须要是用网线、网卡或者无线网卡 协议(tcp/ip) TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的 OSI与TCP/IP参考模型 书籍推荐《tcp/ip协议3卷》 IP地址 每个internet上的主机和路由器都有一个ip地址,它包括网络号和主机号,ip地址有ipv4(32位)或者ipv6(128位)可以ipconfig查看 端口(port)-介绍 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口

Wireshark抓包,带你快速入门

回眸只為那壹抹淺笑 提交于 2020-04-07 19:22:29
原文: Wireshark抓包,带你快速入门 前言 关于抓包我们平时使用的最多的可能就是Chrome浏览器自带的Network面板了(浏览器上F12就会弹出来)。另外还有一大部分人使用Fiddler,Fiddler也是一款非常优秀的抓包工具。但是这两者只能对于HTTP和HTTPS进行抓包分析。如果想要对更底层的协议进行分析(如TCP的三次握手)就需要用到我们今天来说的工具Wireshark,同样是一款特牛逼的软件,且开源免费自带中文语言包。 安装和基本使用 Wireshark开源地址: https://github.com/wireshark/wireshark Wireshark下载地址: https://www.wireshark.org/download ,这里有它的历史版本。今天我们就来安装最新版本3.2.0,一路默认“下一步”安装大法就可以了。安装好后默认就是中文版。 开始抓包 显示过滤器 你会发现第一部分内容跳到非常快,根本没法找到自己想要分析的内容。这里我们可以使用显示过滤器,只显示我们想要看的内容。 在显示过滤器填入 http.reques127.0.0.1thod == "GET" ,然后用Chrome浏览器访问 http://fanyi-pro.baidu.com/index (特意找的一个http网站) 除了过滤Get请求外,常用的显示过滤器还有: tcp

字节二面问我计算机网络的拥塞控制问题,清明节假,我终于搞明白了...

巧了我就是萌 提交于 2020-04-06 21:31:19
多点头发,少点代码 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 本来想先更新TCP的基础和TCP可靠性等问题的,但是被你们暗示了,就先更流量控制和拥塞控制了。希望龙叔讲的你能搞清楚,如果有不清楚的,可以加龙叔微信一起探讨。 龙叔的号暂时还没开通留言功能(大家要是有留言号,可以贡献一个出来喔😆),大家有什么问题就直接后台回复 龙叔 即可加龙叔微信,享受一对一技术探讨(只要是问我问题的都会回复大家,基本是在晚上十点之后和周末,做好不会秒回的心理准备) 流量控制 讲流量控制之前先花简短的话语絮叨下TCP基础知识,详细知识细节后面会出文章一一道来。 TCP是一种面向连接、保证可靠性、流式传输服务。 面向连接 就是建立链接,也就是面试常问的三次挥手建立链接,四次挥手断开链接。 保证可靠性 到是很好理解,就是你发送的数据尽最大可能保证让接收端接收到。 流式传输 就是传输的数据是以字节流的形式发送和接受(不要硬是和我说,什么字节流传输?明明物理层上都是波信号,这,抱拳。) TCP传输数据都是建立链接之后才进行传输,传输的时候为保证可靠性,也是采用确认应答机制。所谓确认应答机制就是发送数据之后必须收到确认消息,才算一次有效传输。 举个简单栗子,就是你和别人交流之前必须叫别人一声(这位先生你好

计算机网络中的一些概念

别说谁变了你拦得住时间么 提交于 2020-04-06 13:34:51
OSI,TCP/IP,五层协议的体系结构,以及各层协议 答:OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。 每一层的协议如下: 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器) 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机) 网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器) 传输层:TCP、UDP、SPX 会话层:NFS、SQL、NETBIOS、RPC 表示层:JPEG、MPEG、ASII 应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS 每一层的作用如下: 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit) 数据链路层:将比特组装成帧和点到点的传递(帧Frame) 网络层:负责数据包从源到宿的传递和网际互连(包PackeT) 传输层:提供端到端的可靠报文传递和错误恢复(段Segment) 会话层:建立、管理和终止会话(会话协议数据单元SPDU) 表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU) 应用层:允许访问OSI环境的手段(应用协议数据单元APDU) ARP是地址解析协议

清明节假,终于搞明白了网络拥塞控制问题

久未见 提交于 2020-04-06 12:15:03
多点头发,少点代码 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 本来想先更新TCP的基础和TCP可靠性等问题的,但是被你们暗示了,就先更流量控制和拥塞控制了。希望龙叔讲的你能搞清楚,如果有不清楚的,可以加龙叔微信一起探讨。 龙叔的号暂时还没开通留言功能(大家要是有留言号,可以贡献一个出来喔😆),大家有什么问题就直接后台回复 龙叔 即可加龙叔微信,享受一对一技术探讨(只要是问我问题的都会回复大家,基本是在晚上十点之后和周末,做好不会秒回的心理准备) 流量控制 讲流量控制之前先花简短的话语絮叨下TCP基础知识,详细知识细节后面会出文章一一道来。 TCP是一种面向连接、保证可靠性、流式传输服务。 面向连接 就是建立链接,也就是面试常问的三次挥手建立链接,四次挥手断开链接。 保证可靠性 到是很好理解,就是你发送的数据尽最大可能保证让接收端接收到。 流式传输 就是传输的数据是以字节流的形式发送和接受(不要硬是和我说,什么字节流传输?明明物理层上都是波信号,这,抱拳。) TCP传输数据都是建立链接之后才进行传输,传输的时候为保证可靠性,也是采用确认应答机制。所谓确认应答机制就是发送数据之后必须收到确认消息,才算一次有效传输。 举个简单栗子,就是你和别人交流之前必须叫别人一声(这位先生你好

TCP/IP学习笔记8--数据链路之基本概念

我们两清 提交于 2020-04-06 06:56:47
“ 在你生命的最初30年中,你养成习惯;在你生命的最后30年中,你的习惯决定了你。 ”---- Steve Jobs TCP/IP对于OSI参考模型的数据链路成及以下部分(物理层)没有做定义。但是,数据链路的知识对于深入理解网络起着至关重要的作用。 数据链路层的协议定义了通过 通信媒介 互联的设备之间的传输的规范。通信媒介包括双绞线电缆,光纤,电波等介质。 计算机以0和1表示信息,嗯安儿实际的通信媒介之间踔厉的是电压的高低,光的闪灭等信号,进行转换的正式物理层。数据链路层处理的数据也不是单纯的0 1序列,该层把它们集合为一个叫做帧的块,然后进行传输。 基本概念1: MAC地址: 网卡的地址,亦称为物理地址,任何一个网卡的mac地址都是全球唯一的,mac一般会烧入rom中。 另外,无线LAN,蓝牙设备中也使用同样规格的mac地址。 上图,各个主机都接收数据,然后各自根据数据头中的mac地址判断是不是给自己的数据。 基本概念2: 共享介质型网络: 多个设备使用同一个信道进行发送和接受,属于半双工通信(能接受 发送,但是不能同时进行)。为了协调各个设备对信道的使用,一般采用两种方式:争用方式 和 令牌传递方式 1)争用方式: 各个设备采用先到先得的方式占用信道发送数据,如果多个设备同时发送会产生冲突现象。 2)令牌传递方式:--- 不错的思想哈 沿着令牌环发送一种令牌报文

网络协议和管理

强颜欢笑 提交于 2020-04-06 00:37:27
1、简述osi七层模型和TCP/IP五层模型; 物理层 在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 数据链路层 数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。 该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。 MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制; LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。