주니어 개발자 1호

TCP/IP 4계층 모델 본문

개발관련 Tip

TCP/IP 4계층 모델

No_1 2023. 9. 24. 19:57

OSI 7 / 4 계층

설명

  • 네트워킹 범위에 따라 4개, 7개의 추상화 계층으로 제공함
  • 실제로 사용되는 인터넷 표준은 TCP/IP 4계층
    • 논리적으로 세분화 하여 추상화한 7 계층으로 나눔
  • 실제 네트워크는 TCP/IP가 4계층
    • 어플레케이션을 운영하기 위해 더 세부적으로 나눈 개념이 OSI 7 계층

계층 분석

  • 위 그림처럼 계층이 나누어져있으며 아래에 위치해있을수록 데이터를 확인할 수 있는 권한이 낮다.
  • 특정 계층에서 사용하는 프로토콜등이 바뀌더라다도, 역할만 유지한다면 계층 구조는 이전과 같이 돌아감.
    • 이는, 여기서의 특정이 아닌 Layer 라는 개념을 이해하면 좋을 것 같음 ( input. out은 유지가 되어야 됨 )
    • UDP → TCP 로 바뀌더라도 영향이 없음. ( 단, 이 예시로 들 때 유실은 있을 수 있어도. 역할은 바뀌지 않음 )
    • 예시) 회사에서 여러 부서가 있는데, 한 부서의 사람이 바뀌더라도. 업무에 영향은 없음

TCP 1계층 / OSI 1,2계층

  • 링크, 네트워크 인터페이스 계층
    • 설명:
      • OSI 1, 2계층에 해당되며 TCP/IP 패킷을 네트워크 매체로 송수신하는 과정을 담당함.
      • 네트워크 장치를 통해 송,수신 되는 것을 담당하는 Layer ( 패킷, 전송 주소는 mac을 참조)
    • 세분화 시키기
      • 물리 계층
        • 하드웨어 전송 기술로 이루어짐. 비트(2진수)로 이루어져 있다. 0101011 단지 전송만을 담당
        • 흔히 쓰는 Lan Cable을 생각해주면 좋다.
      • 데이터 링크 계층
        • 흐름 제어, 접근 제어를 담당하는 계층.
          • STP (Spanning Tree Protocol): 이더넷 네트워크에서 루핑 문제를 방지하기 위해 사용되는 프로토콜
          • PPP (Point-to-Point Protocol): 직접 연결된 두 지점 간의 연결에 사용되는 프로토콜입니다. 주로 다이얼업 및 VPN 연결에 사용됩니다. ( 최단 거리 )
        • 네트워크 기기의 일련번호 ( MAC Adress )를 기반으로 통신을 진행함.
        • 무선 랜 카드, PC 랜선 / 스위치 꽂는 부분 등을 생각해주면 좋다.

TCP 2계층 / OSI 3계층

  • 인터넷 계층, 네트워크 계층
    • 설명: 인터넷 계층은 장치로 부터 받은 네트워크 패킷을 IP 주소로 전송하기 위해 사용되는 계층. IP, ARP, ICMP등이 있으며 패킷을 수신해야하는 상대의 IP주소로 데이터를 지정하여 데이터를 전달함.
    • IP(주소)를 기반으로 경로를선택해 데이터를 전달. 흔히 아는 IP주소가 해당 Layer의 개념.
      • IP의 개념은 내부 IP, 외부용 IP가 있음
        • 내부 IP의 경우 공유기등을 통해 정해진 사내의 내 IP
        • 공유기를 사용하는 사람은 같은 IP를 통해 통신이 나가게 됨.
          • 공유기 (1) : PC (N) 의 관계
          • NAT
      • 사내에서 중복 IP 문제가 있다면 어떤 문제점이 발생하는지 고민해보면 좋을 것 같음.

TCP 3계층 / OSI 4계층

  • 전송계층
    • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 수행함.
    • 전송 계층은 대표적으로 TCP/UDP등이 있다.
    • TCP
      • 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해 연결해 신뢰성을 구축함.
      • 보낸 순서대로 받음
    • UDP
      • 순서를 보장하지 않고 수신 여부를 확인하지 않으며, 단순히 데이터만 주고 받음
      • 보낸 순서대로 받지 않음.
      • 그렇기에 전송만 하면 종료되므로, 신뢰성 보단 속도가 중요한 스트리밍같이 연속적인 서비스에 주로 이용함.
    • 이 계층에서 PORT 개념을 사용함.
    • TCP 연결 성립 과정
      • 3-way-handshake
        • 서로 다른 IP두개에 대한 신뢰성을 확보 시키기 위한 방식

  1. SYN:
    1. 클라이언트에서 서버에 전송
      • Client의 ISN을 전송
      • 시퀀스 넘버가 생성되며, 랜덤한값으로 설정된다.
  2. SYNC + ACK
    1. 서버에서 클라이언트에게 전송
    • 서버는 ACK = 클라이언트의 ISN+1을 보내주고
    • 자신의 ISN을 발급해준다. 이 때 서버는 요청이 많기에 수많은 클라이언트로부터 같은 시퀀스넘버를 주지 않게 ( 섞이지 않게 랜덤으로 발급 )
  3. ACK
    • 클라이언트에서 → 서버
      • 서버의 ISN의 +1 한 값을 보냄

.그렇기에 UDP에 비해 TCP가 연결에 대해 리소스를 사용하기에 많은 연결이 일어난다면, 부하가 있는편

  • 이렇게 SYN, ACK등을 검증해서 서로 식별하여 신뢰성이 구축된다.
  • TCP 연결 해제 성립 과정

 

  • 클라이언트 → 서버 연결 종료 요청
    • FIN으로 설정된 세그먼트를 보냄
    • 클라언트는 FIN_WAIT_1의 상태로 설정됨
    • 서버 → 클라이언트 ( 승인 확인 )
      • 클라이언트에게 ACK 승인 세그먼트 전송
      • 서버는 CLOSE_WAIT의 상태에 들어감
    • 서버 → 클라이언트 ( FIN - 종료 ) 전송
      • ACK를 보낸 이후 일정 시간( 무결성 확보를 위함 ) 이후에 클라이언트에 FIN이란 세그먼트 전송
    • 클라이언트
      • TIME_WAIT 상태에서 ACK를 서버에 보내어 서버는 CLOSE 상태가 된다.
    • 전반적으로 TCP - 신뢰성, 무결성을 보장하기 위한 연결과정
      • 연결을 바로 끊어 버리면 데이터, 네트워크의 무결성이 보장되지 않음
        • 늦게올 수 있는 패킷이 존재할 수도 있기에.
      • CentOS , 우분투 기준 60초
      • 윈도우 기준 4분

 

 

애플리케이션 계층

  • 애플리케이션 계층은 웹이나 이메일과 같은 서비스를 제공하는 계층입니다.
  • 각 서비스의 독자적인 프로토콜을 가지고있습니다.
  • EX)
    • 웹: HTTP
    • 메일 관련: POP, SMTP, IMAP
    • SMP, AFP: 파일공유
    • Other - DNS, DHCP, SSL,TLS
  • TCP 4계층 / OSI 5,6,7 계층
  • TCP - 애플리케이션 계층
  • OSI
    • 5계층 세션 계층
      • 데이터 통신의 세션을 설정, 관리 및 종료하는 역할을 수행합니다.
      • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공.
      • TCP/IP 세션을 만들고 없애는 책임이 있음
      • API서버의 세션 개념보다는, 통신 프로토콜을 설정, 유지, 종료하는 기능을 담당
    • 6계층 프레젠테이션 계층
      • 데이터 표현이 상이한 응용 프로세스의 독립성을 제공, 암호화.
      • EBCDIC로 인코딩된 데이터를 ASCII로 변환하는 것등
        • 예를 들면, JSON, XML, Protobuf 등의 데이터 형식을 변환하거나 파싱하는 작업
      • 암호화, 압축, 데이터 전송간의 추상화 제공 계층
        • TLS(Transport Layer Security)와 같은 프로토콜을 사용하여 데이터를 암호화하거나 복호화하는 작업을 수행
    • 7계층 애플리케이션 계층
      • 데이터의 목적지로서 http등과 같은 프로토콜이 있음
        • 네트워킹 범위에 따라 4개, 7개의 추상화 계층으로 제공함
        • 실제로 사용되는 인터넷 표준은 TCP/IP 4계층
          • 논리적으로 세분화 하여 추상화한 7 계층으로 나눔

'개발관련 Tip' 카테고리의 다른 글

패러다임의 혼합  (0) 2023.09.17
MVP Pattern  (0) 2023.09.17
팩토리 패턴에 대해 쉽게 설명해보기  (0) 2023.09.17
싱글톤 패턴  (0) 2023.09.17
INDEX 테스트 해보기  (2) 2023.07.16