网络基础知识 tcp
网络基础相关的知识(1)架构a. C / S架构: client客户端和server服务器端 优势: 能充分发挥PC机的性能b. B / S架构: browser浏览器和server服务器 隶属于C / S架构 B / S架构统一了应用的接口.(2)通信的事:a.同一台电脑上两个py程序通信: 打开一个文件b.两个电脑如何通信: 连一个网线c.多个电脑通信:ex: 电脑1(源) 要找电脑2(目标)电脑1首先发送一个请求帧, 期中包含(我的ip是192.168.1.1, 我的mac地址是xxxxxxxx, 我要找ip地址为192.168.1.2的主机), 将此请求发送给交换机. 交换机要广播这条消息给其他所有的主机 目标主机接收到消息后, 对比发现自己就是被找的主机, 回复给交换机信息(我的ip地址是192.168.1.2, 我的mac地址是yyyyyyyyy, 请回复给ip地址为192.168.1.1, mac地址为xxxxxxx的主机)交换机单播形式返回给源主机 知识点:1 mac地址: 是一个物理地址, 全球唯一, 类似于身份证2 ip地址: 是一个四位点分十进制, 它标识了计算机在网络中的位置.类似于学号3交换机的通信方式:广播: 吼一嗓子单播: 一对一组播: 一对多4arp协议: 通过目标ip地址获取目标mac地址的一个协议.5端口: 操作系统为本机上每一个运行的程序都随机分配一个端口, 其他电脑上的程序可以通过端口获取到这个程序 ip地址 + 端口能唯一找到某台电脑上的某一个服务程序6路由器: 连接不同网段, 路由7网关: 类似于一个局域网的出口和入口8网段: 一个局域网内的ip地址范围9子网掩码: 子网掩码 & ip地址得到网段10osi五层模型:应用层: http, https, ftp 传输层: tcp / udp四层交换机 四层路由器网络层: ip协议路由器三层交换机数据链路层: arp协议以太网交换机网卡网桥物理层: 传输电信号集线器网线光纤 2socket模块这是一个新的模块import socket socket又叫做套接字有很多种类型, 但是咱们只需要知道两种就可以了 sk = socket.socket(family=AF_INET, type=SOCK_STREAM)family:一种: AF_UNIX基于文件类型的套接字(早期socket是源自于unix系统而研发的一个功能, 主要是为了同一台电脑上, 多个程序直接通信)unix系统的中心思想是: 一切皆文件一种: AF_INET基于网络类型的套接字type:一种是基于TCP协议SOCK_STREAM一种是基于UDP协议SOCK_DGRAM tcp协议: 可靠的, 面向连接的, 面向字节流形式的传输方式udp协议: 不可靠的, 不面向连接的, 面向数据报的传输方式, 但是它快 服务器
# import socket# import time# sk = socket.socket()# 不传参数,默认使用基于网络类型的套接字, 协议 : TCP# sk.bind(('192.168.12.104',18080))# 端口的范围是0-65535 但是 0-1023 这些你别用# sk.listen()# 同时能接受的连接# conn,addr = sk.accept()# 等待接受客户端的连接 阻塞等待# print('conn:',conn)# print('addr:',type(addr))# time.sleep(20)# conn.close()# sk.close()
# 第二次 通信
import socket
sk = socket.socket()# 我买一个新手机
sk.bind(('192.168.12.104',18080))# 我买一个手机卡
sk.listen()# 开机
conn,addr = sk.accept()# 等待朋友给我打电话
msg_r = conn.recv(10)# 接受数据,接受10个字节print(msg_r.decode('utf-8'),addr)
conn.close()# 挂断电话sk.close() # 关机
客户端
# import socket# import time# sk = socket.socket()# sk.connect(('192.168.12.104',18080))# 连接# time.sleep(20)# sk.close()
# 第二次 通信import socket
sk = socket.socket()
sk.connect(('192.168.12.104',18080))# 连接
sk.send('中文'.encode('utf-8'))
sk.close()
一直通信tcp多人通信(必须关闭一个客户端,再进行第二次通信)服务器
import socket
sk = socket.socket()# 默认参数 使用基于网络类型的套接字,TCP协议sk.bind(('127.0.0.1',65533))# 回环地址sk.listen()while 1: conn,addr = sk.accept()# 接电话
while 1: msg_r = conn.recv(1024).decode('utf-8') print(msg_r) if msg_r == 'q': break msg_s = input('>>>') conn.send(msg_s.encode('utf-8')) if msg_s == 'q': break
conn.close()sk.close()
客户端
import socket
sk = socket.socket()sk.connect(('127.0.0.1',65533))while 1: msg_s = input('>>>') sk.send(msg_s.encode('utf-8')) if msg_s == 'q': break msg_r = sk.recv(1024).decode('utf-8') if msg_r == 'q': break print(msg_r)
sk.close()
************************************************************************************************
说一说交换机和路由器的区别?
交换机的主要功能是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点,点多对的形式,发送给固定端
路由器的主要功能: 进行跨网段进行数据传输,路由选择最佳路径.
EX:
如果你需要将多台电脑连接到一根网线, 用交换机即可
如果你只有一个外网ip,但是你有好多台电脑需要上网, 用路由器即可
网络基础知识 tcp的更多相关文章
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- Java 网络编程(一) 网络基础知识
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...
- Linux运维笔记(一)网络基础知识
网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...
- iOS网络基础知识
iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...
- TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- 转:TCP/IP协议(一)网络基础知识
转载:http://www.cnblogs.com/imyalost/p/6086808.html 参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知 ...
- TCP/IP协议(一)网络基础知识 网络七层协议
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- 软件开发架构、网络基础知识、osi七层模型
一.软件开发的架构 涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以 ...
随机推荐
- 【error】select timeout问题
使用摄像头的过程中出现这个问题,说明是找不到摄像头了, 有可能是摄像头驱动问题,也有可能是摄像头接口处接触不良等原因造成的. re 1.select-timeout-opencv; End
- Maven3的环境配置
1 需要准备一个Maven的包,名字叫:apache_maven_3.3.9(在百度中搜索自行下载) 2 在eclipse中点击window→preferences→maven→Installatio ...
- 20155229 2016-2017-2 《Java程序设计》第六周学习总结
20155229 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 Java中,输入串流代表对象为java.io.InputStream,输出串流代表对 ...
- 51Nod:1265 四点共面
计算几何 修改隐藏话题 1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点 ...
- HTTP、TCP、UDP以及SOCKET
HTTP.TCP.UDP以及SOCKET 一.TCP/IP代表传输控制协议/网际协议,指的是一系列协组. 可分为四个层次:数据链路层.网络层.传输层和应用层. 在网络层:有IP协议.ICMP协议.AR ...
- /proc/sys/vm/drop_caches 清理缓存
1. 使用方法 /proc/sys/vm/drop_caches默认是0 # echo 1 > /proc/sys/vm/drop_caches; free pagecache, use# ec ...
- java设计模式--创建型模式(一)
2016-04-24 10:10:34 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 注意:工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂 ...
- MapReduce-朴素贝叶斯
朴素贝叶斯(Native Bayes),贝叶斯在现实使用中是怎么玩的?不是根据A|B的概率获得B|A的概率,在现实中的玩法是: 首先要明白贝叶斯是一种分类算法,因为是概率所以,他的应用领域其实是比较, ...
- JMeter--详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...
- 2018-2019学年第一学期Java课设--魔塔
目录 Magic-Towers 一.团队名称.团队成员介绍.任务分配 团队名称:MoTa 团队成员介绍 任务分配 二.项目简介 三.项目采用技术 四.项目亮点 主界面显示主要信息功能 游戏动画 五.项 ...