CS/이론

네트워크 기초 이론 (TCP/IP)

WhNi 2024. 4. 3. 14:55

네트워크 프로토콜

다른 장치들끼리 데이터를 주고 받기 위해 설정된 공통된 인터페이스. IEEE나 IETF라는 표준화 단체가 정함.

 

ex) 웹에 접속하기 위해서 HTTP가 있는데 이게 HTTP라는 프로토콜을 통해 노드들이 웹서비스를 기반으로 데이터를 주고 받을 수 있는것. 

 

TCP/IP 4 계층 모델 

 

TCP/IP 4 계층

- 애플리케이션 계층 ( FTP/HTTP/SSH/SMTP/DNS)

  • FTP - 장치와 장치간의 파일을 전송하는데 사용되는 표준 통신 프로토콜
  • SSH - 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
  • HTTP - www 을 위한 데이터 통신 프로토콜
  • SMTP - 전자메일 전송을 위한 인터넷 표준 통신 프로토콜
  • DNS - 도메인 이름과 IP를 매핑해주는 서버

- 전송 계층 (TCP/UDP/QUIC)

  • 애플리케이션 계층과 인터넷 계층 사이에서 데이터를 전달할때 중계역할을 하는 계층.
  • TCP - 패킷 사이의 순서를 보장하고 프로토콜을 연결해서 가상회선 패킷 교환 방식을 사용
    • 가상회선 패킷 교환 방식 -패킷에 가상회선이 포함되고, 전송할때 가상회선이 해제되었다가 순서대로 호스트에 도착하는 방식
    • +) 신뢰성을 확보할때 3way handshake 라는 작업을 하는데 이 작업이 UDP와는 다른 큰 차이점을 보임.
    • 3Way handShake
      • SYN(연결 요청 플래그) - 클라이언트에서 ISN(패킷에 할당된 시퀀스 번호)를 SYN에 보냄. 
      • SYN + ACK(응답 플래그)  - 서버에서 클라이언트의 SYN을 받으면,  서버의 ISN을 보내고 승인번호로 ISN+1을 보냄 
      • ACK - 승인 번호를 받아서 서버에 ACK에 보냄 
    • TCP 연결을 해제할때는 4way handshake를 함. 
      • 클라에서 FIN 으로 설정된 세그먼트를 보냄. 보낸 순간 FIN_WAIT_1상태로 전환되고 서버의 응답을 기다림
      • 서버는 클라에게 ACK라는 승인 세그먼트를 보내고, CLOSE_WAIT 상태로 전환. 클라는 세그먼트를 받으면 FIN_WAIT_2 상태로 전환
      • 서버는 FIN 이라는 세그먼트를 보냄
      • 클라는 TIME_WAIT 상태로 되고 다시 서버로 ACK를 보내서 서버가 CLOSED 상태로 전환. 이후 클라도CLOSED 됨. (TIMEWAIT은 지연시간 때문에 데이터 손상이 있을 수 있어서 지연시간까지 기다렸다가 닫음)
  • UDP- 순서를 보장하지 않고 데이터만 주는 데이터그램 패킷 교환 방식을 사용
    • 데이터그램 패킷 교환 방식- 패킷이 독립적으로 최적의 경로로 가는데 순서가 다를 수 있음

-인터넷 계층 (IP/ARP/ICMP)

  • 장치로 부터 받은 패킷을 목적지로 전송하는 계층. 

-링크 계층 (이더넷) 

  • 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 '규칙'을 정하는 계층
  • 물리 계층/ 데이터 링크 계층
    • 물리계층- 무선 LAN , 유선 LAN
      • 무선 LAN -IEEE802.11 프로토콜 사용 (반이중화 통신) - 한쪽만 데이터 수신
        • 주파수 - 비유도 매체인 공기에 주파수를 쏴서 무선 통신망 구축이 가능한데, 2.4GHz, 5GHz 대역을 써서 구축. 
          • 2.4GHz - 장애물에 강한 특성을 가지지만 전파 간섭이 일어나는 경우가 많음
          • 5GHz - 채널수도 많고 깨끗한 전파 환경 구축이 가능
        • 공유기 (와이파이) 
          • 무선 LAN 신호에 연결할 수 있게 하는 기술.
          • AP(Access Point)가 필요
          • 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔주어 신호가 닿는 범위내에 무선 인터넷을 사용할 수 있음 
        • BSS(Basic service Set)
          • 동일 BSS내에 있는 AP들과 장치들이 서로 통신 가능한 구조
        • ESS(Extended Service Set)
          • 하나 이상으로 연결된 BSS 그룹 
      • 유선 LAN - IEEE802.3 프로토콜을 사용 (전이중화 통신) - 양쪽 동시에 데이터 수신 
      • TP 케이블 이라고 하는 트위스트페어 케이블, 광섬유 케이블 2가지가 있음
        • 트위스트페어 케이블 - 8개의 구리선을 2개씩 꼬아서 묶은 케이블(RJ-45 커넥터를 사용)
        • 광섬유 케이블 - 장거리 및 고속 통신 가능, 
    • 데이터 링크 계층 - 이더넷 프레임을 의미
      • 이더넷 프레임 - 데이터의 에러를 검출하고 캡슐화하는 구조
      • Preamble - 이더넷 프레임의 시작
      • SFD - 다음 바이트로부터 MAC 주소필드가 시작됨을 알림
      • DMAC,SMAC - 수신, 송신 MAC 주소 ( LAN 카드의 식별 번호) 
      • EtherType- 데이터 계층 위의 계층인 IP 프토로콜을 정의 (IPv4,IPv6)
      • Payload - 전달 받은 데이터 
      • CRC - 에러 확인 비트
  • 데이터 송수신 매커니즘을 살펴보면
    • 애플리케이션 계층에서 요청값을 세그먼트 또는 데이터그램 화 시켜서 TCP(L4) 헤더가 붙여지고
    • 인터넷 계층으로 가면서 IP(L3)헤더가 붙여지며 '패킷'화 됨.
    • 링크 계층으로 가면서 프레임 헤더와 프레임 트레일러가 붙여지며 ' 프레임' 화 됨.
    • 역순으로 가면서 사용자의 요청값(데이터)이 PDU 메세지로 전달됨.
      • PDU - 데이터가 전달될때 한 덩어리의 단위. 계층마다 불리는 이름이 다름
        • 애플리케이션 계층 ( 메시지)
        • 전송 계층 (세그먼트 (TCP), 데이터그램(UDP))
        • 인터넷 계층( 패킷)
        • 링크 계층 (프라임(데이터링크 계층), 비트(물리 계층))