OSI layer & TCP & UDP

사용안함·2021년 12월 4일
0

Netwhat

목록 보기
4/5

1. OSI 계층

OSI 7Layer 의 각 계층적 구조는 다음과 같다.

OSI 7Layer

Application 계층부터 Transport 계층까지를 Network Edge 라고 하며,
Network 계층부터 Physcial 계층까지를 Nerwork Core 라고 한다.

1) Network Edge

  • 인터넷의 말단 부분
  • 사용자들이 존재하고, 사용자들이 직접 접할수 있는 네트워크
  • 기업 에서 관리되는 부분

2) Network Core

  • 네트워크 엣지들을 연결해 주기 위해 중간에 위치한 네트워크
  • ISP 가 관리하는 부분
  • Router , Switch 등등..
  1. Physical Layer ( 물리 계층 )
  • 개별 시스템간 비트단위의 신호를 전송하는 일을 수행하며, 비트 자체에 대한 의미에는 관여하지 않는다
  • 대체적으로 케이블 등의 물리적인 형태로 나타낸다
  • Hub , UDP 케이블 ( 랜선 ) 등등..
  1. Data Link Layer ( 데이터 링크 계층 )
  • 시스템을 H/W 적으로 구별하며, Frame (프레임) 형태로 Data를 전송하는 역할을 담당
  • CRC Error 점검을 통해 손상을 점검한다
  • S/W 와 H/W 의 혼용으로 나타낸다
  • 랜카드, 브릿지, L2 스위치 등등..
  1. Network Layer ( 네트워크 계층 )
  • 개별 시스템을 논리적으로 구별하는 역할 수행
  • 여러 프로토콜의 Routing 을 담당
  • IP , ICMP , IPsec, ARP 등의 프로토콜
  • H/W 장비 : Router , L3 스위치 등등..
  1. Transport Layer ( 전송 계층 )
  • 상위 프로토콜을 구분하고 패킷의 순서와 손상을 보장
  • 수신자가 발신자에게 응답을 전송하는 역할을 수행
  • TCP, UDP, DCCP 등등..
  1. Session Layer ( 세션 계층 )
  • 세션 열결의 설정 과 해제, 세션 메세지 전송 등의 역할을 수행
  • 인증, 허가, 세션 회복
  • TLS, SSL, 넷 바이오스
  1. Presentation Layer ( 표현 계층 )
  • 네트워크의 데이터 번역 역할 수행
  • 데이터 변환, 압축, 암호화 및 암호해제
  1. Application Layer ( 응용 계층 )
  • 전송 계층 프로토콜을 사용하여 호스트 간 연결을 확립
  • IP 를 통하는 프로세스간 통신 접속을 위해 설계
  • 사용자 인터페이스 로써, 데이터와 그림을 사용자에게 보여주는 역할 수행
  • HTTP, SMTP, SSH, FTP 등등..

※ OSI 7 계층에서는 투명성이 존재해야 한다.
즉, 상위 계층은 하위 계층에서 어떤일이 일어나는지 알 필요가 없어야 한다.

  • 투명성 : 존재하지만 보거나 알아야 하는 필요가 없는것을 의미한다
    ex) 내 PC와 Naver 사이의 패킷교환이 존재하지만, 사용자가 패킷 교환 과정을 알아야할 필요가 없는것

TCP/IP 4Layer

  • 인터넷 프로토콜 스택 이라고도 불리운다
  1. Link Layer ( 링크 계층 )
  • 네트워크 Routing 경로상 한 노드에서 다른 노드로 패킷을 이동하기 위해 존재하는 계층
  • 링크 계층의 통신단위를 Frame ( 프레임 )이라고 함
  • Ethernet, PPP, FDDI
    => 국내의 경우 PPP 와 FDDI 는 거의 사용하지 않는다
    PPP 란 Point to Point Protocol 의 약자로, 시리얼 케이블, 전화선 등 전화선으로 통신하는것을 의미한다
    FDDI 란 근거리 통신망의 데이터 전송 표준으로, 군용 이나 의료용 장비에 주로 사용된다
  1. Network Layer ( 인터넷 계층 )
  • 한 호스트에서 다른 호스트로 Datagram ( 데이터그램 ) 을 Routing 하는 역할을 수행
  • 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜 제공
  • IP , ICMP 등..
  1. Transport Layer ( 전송 계층 )
  • 클라이언트와 서버간 Application 계층 메세지를 전송하는 역할을 수행
  • 전송 계층의 통신단위를 Segment ( 세그먼트 ) 라고 함
  • TCP 프로토콜 , UDP 프로토콜 등..
    => TCP : 연결지향 서비스 제공
    UDP : 비연결형 서비스 제공
  1. Application Layer ( 응용 계층 )
  • 여러 종단 시스템에 분산되어 있으며, 한 종단 시스템의 Application 에서 다른 Application 과 정보 패킷을 교환하기 위해 사용되는 계층
  • 응용 계층의 통신단위를 Message ( 메세지 ) 라고함
  • HTTP, SMTP, FTP 등..

예전에 정리해 놓은 개념이 있어 대체한다.

2. TCP

TCP는 OSI 7계층중 전송 계층에서 사용하는 프로토콜이다.

3 way handshake 를 통해 연결을 하며

4 way handshake 를 통해 연결을 종료한다.

  • -> 서로의 확인과정이 있기때문에 당연 1:1 통신만 가능하며, 신뢰성 연결을 할수있다 하지만 UDP 에 비해 확인과정을 거치기 때문에

연결 속도 전송 속도가 느릴수밖에 없다.

2 - 1. 연결과정

https://blog.kakaocdn.net/dn/cEHPMZ/btq5G2ry7ft/HQ10K8oO8Rmp7Sk1oFBpVk/img.png

  1. 연결을 위해 SYN 플래그 전송

  2. 연결 확인을 위해 SYN + ACK 전송

  3. ACK를 전송하여 연결 확인

2 - 2. 연결 종료

https://blog.kakaocdn.net/dn/y7I70/btq5GZVQI0C/uCQakJnfqvLqqcRwP5xINk/img.png

  1. 사용 다했으니 FIN + ACK 전송

  2. 서버는 클라이언트에게 확인 완료를 위해 ACK 플래그 전송

  3. 서버는 클라이언트에게 아무 반응이 없다면 FIN + ACK 전송

  4. 클라이언트는 서버에세 종료 확인을 위해 ACK 플래그 전송후 연결 종료

2 - 3. TCP 의 헤더

https://blog.kakaocdn.net/dn/dmjRHJ/btq5FTu4fcT/KunqcaG3hGEK6YaGknkMqK/img.png

  • *Source Port**: 출발지의 포트, 즉 데이터를 보내는 컴퓨터의 포트 정보입니다. 컴퓨터가 갖을 수 있는 포트는 65536개이므로 사이즈가 2바이트인것을 확인하세요.
  • *Destination Port**: 반대로 목적지의 포트입니다.
  • *Sequence Number** : 송신 데이터의 일련 번호를 담고 있습니다.
  • Acknowledgement Number : 그전의 데이터를 잘 받았다는 표시로 상대방이 다음에 전송할 일련번호를 담고 있습니다. 줄여서 ACK라고 하겠습니다.
  • *HLEN(Header Length)** : 헤더의 정보를 담고 있습니다. 4 bits의 워드 단위입니다. 헤더의 길이는 최소 20바이트 ~ 60바이트까지입니다.
  • *Reserved** : 예약된 비트입니다. 아직 사용하지 않습니다. 나중을 위해서 남겨두는 비트인 셈이지요.
  • *Control Flags**

제목 없음

  • Window Size : 수신자에서 송신자로 보내는 수신자의 윈도우 사이즈입니다. 즉, 수신 버퍼의 여유공간 크기를 의미하게 되지요. 송신자는 이 윈도우 사이즈 범위 내에서 수신측의 수신 확인(ACK)을 확인하지 않고 연속적으로 데이터를 보낼 수 있습니다.
  • Checksum : 오류를 검사하기 위한 필드입니다. 전체 데이터가 오류가 나 변형되었는지 확인합니다.
  • Urgent Pointer : 긴급 데이터의 위치값을 담고 있습니다.

3. UDP

  • 비연결성 프로토콜 로서 송신자는 수신자에게 데이터 전송만 할뿐 수신자는 확인과정을 거치지 않는다
  • 이러한 특징 때문에 전송 속도가 TCP 보다 훨씬 빠른것을 알수있다.

3 - 1. UDP 헤더

https://blog.kakaocdn.net/dn/tajhm/btq5yCunCUo/rYnpfejueVWrtwK1KKyt50/img.png

  • Source Port / Destination Port

→ Source Port는 메시지를 보내는 측에서 통신을 위해 사용하는 Port 번호

→ Destination Port는 목적지, 즉 메시지를 받는 측의 통신 Port 번호

  • Total Length

→ 헤더와 데이터를 합한 사용자 데이터그램의 전체 길이를 정의합니다. UDP 데이터그램의 헤더인 8바이트부터 65507바이트 사이의 값이 됩니다.

  • Checksum

→ 헤더와 데이터를 모두 포함한 사용자 데이터그램 전체에 대해 오류를 탐지하기 위해 사용됩니다.

  1. TCP 와 UDP 차이점

https://blog.kakaocdn.net/dn/bSzB8H/btq5BlTW8yQ/nat3iAoUoUl8DTqOkB3tD0/img.png

출처

https://joycecoder.tistory.com/20

https://velog.io/@hidaehyunlee/TCP-와-UDP-의-차이

https://hwan-shell.tistory.com/271

https://swalloow.tistory.com/77

profile
기억보단 기록을

0개의 댓글