하루 3분 네트워크 교실 - 5장. 커넥션과 포트 번호

이지섭·2023년 11월 18일
  • 4계층의 역할과 개요
    • 1계층 - 케이블이 연결되어있는 상대에 대한 신호 전달
    • 2계층 - 세그먼트 내에서의 송수신
    • 3계층 - 네트워크(3계층에서의 세그먼트) 사이에서의 송수신
    • 4층과 그 이상 - 전달할, 전달된 데이터에 대해서 필요한 처리를 하는 것
      • 통신에 필요한 처리.
      • TCP Transmission Control Protocol
      • UDP User Datagram Protocol
    • 즉, 3계층까지는 수신처 자체가 존재하지 않거나, 데이터가 도중에 손실되었거나, 에러에 의해 파기되는 문제에 대해서는 생각하지 않는다.
    • 그래서 4계층에서 에러 복구를 다룬다.
    • 에러복구 말고도 흐름제어도 다룬다
      • 처리 능력을 넘어선 정보를 받았을 때 파기되는것을 막는다.
        • over flow
  • 데이터를 주고받는것은 결국 어플리케이션이다!
    • 어느 어플리케이션이 송신하고 수신했는지 알기 위해 포트번호를 부여한다
      • ex)
        • 브라우저 - 2000번
        • 메일 - 3000번
        • FTP - 4000번
        • 어떤 메세지를 수신하니 2000번 포트번호가 쓰여있다. 그럼 이건 브라우저가 수신할 메세지이다.
        • 이런 식
  • 커넥션 - 데이터의 길, 가상의 통신로(TCP 헤더 : 20옥텟)
  • 커넥션 확립 : 3way handshake
    • → SYN
    • ← ACK + SYN
    • → ACK
  • 4계층 TCP헤더 + 메세지 (메세지를 쪼개서 MSS 단위로 만들어서 보낸다)
    • MSS - Max Segment Size
    • 세그먼트에 시퀀스 번호를 부여해서 에러복구용으로 사용한다.
    • 세그먼트를 수신하면 확인응답을 보낸다
      • 다음에 받을 00번 데이터 보내주세요
      • 도착하지 않으면 재전송함
        • RTT - 확인응답이 돌아오는 데 걸린 시간 (초기값 3초)
    • 너무 핑퐁만 하면 시간이 오래걸리니까 한번에 보내고 한번에 응답받는다
      • 윈도우 제어 (버퍼에 저장) 버퍼크기 = 윈도우 사이즈
      • 상대에게 남은 버퍼 정보(윈도우 사이즈)를 알려준다
      • 윈도우 사이즈만큼 보내면 overflow 하지 않는다. 확인응답 기다리지 않고 한번에 보낼 수 있는 양!
    • 포트번호 - 어느 애플리케이션에서 송수신 되었는지 결정
      • 수신처 포트번호를 모르면 통신 불가
      • 자주 사용하는 통신 애플리케이션(정보를 제공하는 어플리케이션)들은 사전에 정해진 포트번호를 사용한다
        • 1 ~ 1023 (well known port)
        • 1024 ~ 65536 미등록 포트번호 (임의로 원하는거 정해서 사용)
  • UDP - TCP는 전송-확인 반복돼서 전송 효율이 낮다
    • UDP 헤더는 수신처 송신처 포트번호만 딸랑 있음
    • 고속, 실시간 애플리케이션에서 사용 (VoIP, 스트리밍)
    • 브로드캐스트에 사용 (DHCP)
  • ICANN에서 관리하는 IP주소 : 글로벌 IP주소 (부족함)
  • 인터넷에 연결하지 않는 IP주소 : 사설 IP주소
    • 10.0.0.0
    • 172.16.0.0 ~ 172.31.0.0
    • 192.168.0.0 ~ 192.168.255.0
  • 네트워크 주소 변환 NAT
    • 내부 네트워크에 사설 IP를 할당한다 (TCP/IP 통신을 위해)
    • 단점 : 동시접속 수 (라우터에 할당된 글로벌 IP주소 개수만큼 동시접속 가능. 1:1대응)
    • 라우터가 NAT를 하여 송신처 IP주소를 자신의 IP주소로 바꾼다
    • 데이터를 다시 수신하면, NAT 테이블(일정시간 후 파기)에 따라 수신처 IP주소를 이전의 송신처 IP주소로 변환한다
  • 그래서 나온게 NAPT (+port)
    • 하나의 글로벌 IP로도 복수의 컴퓨터 통신 가능
    • 포트번호도 변환한다.
    • 장점 : 보안성 굿
      • 수신처 포트 80으로 보내도 어차피 못받음. 내부망 열람이 안됨. 접속불가
      • 정적 NAPT : LAN 내부에 접속하기 위해 NAPT 테이블에 포트번호를 미리 저장시킨다
    • 단점 : 그래서 FTP 안됨
      • FTP에서는 데이터 부분에서부터 송신처의 IP주소와 포트번호가 기술되고, 그 정보로 통신을 수행하기 때문
      • FTP 지원하는 기기가 따로 있다
  • 5계층 - 세션관리
    • 애플리케이션과의 대화 (다이얼로그 제어)
      • 데이터 전송 타입, 데이터 전송 준비 (제어 커넥션)
      • 실제 데이터 전송 (데이터 전송 커넥션)
      • 전송 종료 (제어 커넥션)
  • 6계층 - 표현계층
    • 컴퓨터간 형식 차이를 변환한다
      • ASCII → 네트워크 전송용 코드 → EBCDIC
      • 압축, 암호화 등 포함
  • 7계층 - 응용계층
    • 네트워크 서비스를 제공하는 계층
    • 목적에 따른 프로토콜들로 나뉜다
      • HTTP, FTP, SMTP, 등등 (TCP/IP → 이더넷 → 도착)
profile
Stop thinking. Just do it.

0개의 댓글