목록네트워크 (20)
내 잡다한 노트
내 노트북에서 virtualbox로 리눅스 서버를 접속하곤 했는데 윈도우 터미널에서 리눅스 서버에 접속하고 싶다는 생각이 수업듣다가 해보고싶어서 바로 해보게됐음. 먼저, Windows Terminal을 마이크로소프트 store에서 다운 받아야함. 다 깔았으면 아래 명령어를 입력해 openssh를 활성화시킨다. $ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 그 다음 ssh [user]@[IP주소] -p [port] ssh니까 나는 그냥 22번 포트를 사용했다. 그런데 연결이 거부됐다고 떴다. 왜그런지 구글링을 해보니 1. ubuntu에 ssh가 설치가 안되어 있거나 2. 방화벽에 막히는 경우라고 한다. 먼저 1번으로 문제해결을 해보기로 결..
Server.py from socket import * serverSock = socket(AF_INET, SOCK_STREAM) # 소켓 객체를 생성. param1: Address Family(=IPv4를 의미함), param2: socket type # serverSock.bind(('', 8080)) # bind는 서버에서 반드시 필요하다고 함. 생성된 소켓의 번호와 AF를 연결해주는 것. # 8080번 포트에서 모든 인터페이스에게 연결되도록 한다라는 의미 ''는 모든 인터페이스와 연결 # 즉 브로드캐스트. serverSock.listen(1) # 상대방의 접속을 기다리는 단계 # 인자로 1을 준 것은 소켓이 총 몇개의 동시접속을 허용할 것인지에 대한 이야기. 하나만 동시접속 가능 # 입력하지 않으..
SSH (Secure SHell) 일반적으로 서버 및 기타 네트워크 장치의 원격 관리에 사용된다. SSH를 통해 사용자는 원격 장치에 안전하게 로그인하고 장치의 물리적 콘솔에 앉아 있는 것처럼 명령을 실행할 수 있다. 이를 통해, 인터넷 연결이 있는 한 전 세계 어디서나 원격 장치를 관리할 수 있다. ssh는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다. 기본적으로 CLI 상에서 작업을 하며 기본 포트는 22번이다. 서버에 접속할 때 비밀번호 대신 KEY를 제출하는 방식이다. 공개 키 암호화를 사용하여 클라이언트와 서버를 인증하고 보안 연결을 설정하는 방식으로 작동한다.
위 두가지는 Layer 4: 전송계층에서 사용되는 프로토콜이다. 전송(Transport)계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층. 그래서 transport구나... IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다. TCP(Transmission Control Protocol) TCP는 신뢰성 있는 데이터 전송을 지원하는 연결형 프로토콜이다. 일반적으로 TCP와 IP가 함께 사용되는데, IP가 데이터의 전송을 처리한다면 TCP는 패킷 추적 및 관리를 하게 된다. 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작함. 데이터의 전송 순서를 보장하고 UDP보다 전송속도가 느리다. UDP(User Datagram Protoc..
# 정의 데이터를 주고보낼 때, 전송되는 특정한 형식을 갖춘 데이터 조각. # 왜 패킷이 사용되는가? 데이터를 한 번에 통으로 보내면 편할 것 같지만 문제가 있다. 큰 데이터는 대역폭을 너무 많이 차지하기 때문. 그렇게 돼면 트래픽이 많아진다. 그래서 작은 단위인 패킷으로 잘라 전송한다. 데이터를 목적을 가진 조각들로 쪼개놓은것. # 구성 헤더와 페이로드로 구성된다. 헤더에는 출발지, 목적지 IP주소와 같은 패킷에 대한 정보가 포함되고 페이로드에는 실제 데이터가 들어간다. # 패킷 교환 # 패킷 헤더
프로그램이 네트워크에서 데이터를 주고받을 수 있도록 두 프로그램 간 양방향 통신의 하나의 엔드 포인트(?)이다. 소켓은 포트 번호에 바인딩되어 TCP 레이어에서 데이터가 전달되야하는 애플리케이션을 식별할 수 있게 한다. 소켓은 소프트웨어와 소프트웨어를 연결한다. 바로 IP와 포트를 통해서 한다. 엔드 포인트의 정의 )) 아이피 주소와 포트 번호의 조합을 의미한다. 프로세스 간 통신에 사용되는 Socket을 이용한 통신 프로그래밍을 socket Programming이라고 한다. Client Socket과 Server Socket로 구분된다. ## 클라이언트에서 하는 일 - 소켓 생성, 연결 요청(IP주소와 포트 번호로 연결하고 싶은 타겟대상을 특정), 데이터 송수신(수신하는 API는 별도의 Thread에서..
3계층에서 하는 일 3계층은 다른 네트워크 대역 즉, 멀리 떨어진 곳에 존재하는 네트워크까지 어떻게 데이터를 전달할지 제어하는 일을 담당. 발신에서 착신까지의 패킷의 경로를 제어 IP주소 : WAN에서 통신할 때 사용하는 주소 3계층 프로토콜 ARP 프로토콜 : IP주소를 이용해 MAC주소를 알아온다. IPv4 프로토콜 : WAN에서 통신할 때 사용한다. ICMP 프로토콜 : 서로가 통신되는지 확인할 때 사용한다. Classful IP 주소 (낭비가 심한) IP주소는 10진수로 표현된다. .으로 구분되는 숫자들은 1바이트까지 사용할 수 있어서 2의 8승인 0 ~ 255까지만 10진수로 표현이 된다. A클래스 첫번째 필드까지는 네트워크 대역을 구분하는데 사용한다. 그 외 나머지는 네트워크 대역 안에 있는 ..
2계층에서 하는 일 2계층은 하나의 네트워크 대역 즉, 같은 네트워크 상에 존재하는 여러 장ㅇ비들 중에서 어떤 장비가 어떤 장비에게 보내는 데이터를 전달. 추가적으로 오류제어, 흐름제어를 수행. 2계층의 네트워크 크기 하나의 네트워크 대역 LAN에서만 통신할 때 사용한다. 다른 네트워크와 통신할 때는 항상 3계층이 도와줘야 한다. 3계층의 주소와 3계층의 프로토콜을 이용하여야만 다른 네트워크와 통신이 가능하다. 물리적인 주소 LAN에서 통신할 때 사용하는 MAC주소를 뜻한다. 장비의 고유주소이다. 16진수를 사용한다. 2계층의 프로토콜 Ethernet 프로토콜의 구조 Destination Address는 데이터를 받는 맥주소를 뜻하고 총 6바이트, Source Adress는 보내는 주소 여기도 6바이트,..