[CS] TCP/IP 4계층 (2)

최지나·2023년 10월 30일
2

CS

목록 보기
15/55

애플리케이션 계층

HTTP, SMTP, SSH, FTP가 대표적이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층

1. HTTP

Hypertext Transfer Protocol

  • 서버와 브라우저 간에 데이터를 주고 받기 위해 설계된 프로토콜
  • 브라우저 뿐만 아니라 서버와 서버 간의 통신 시에도 많이 사용
    • ex) MSA 서버와 서버 간의 통신

HTTP는 헤더를 통한 확장이 쉽다

  • HTTP 요청 시 다른 값을 추가하고 싶으면 새로운 header에다가 데이터를 넣어서 보내면 된다

HTTP는 stateless 하다

  • 동일한 연결에서 연속적으로 수행되는 두 요청 사이에 연속적인 상태(state)값은 없다
    • 서버 입장에서는 동일한 client가 요청을 또 보내는 건지, 아닌지 알 수 없다. 상태를 저장하지 않기 때문

2. SSH

Secure SHhell Protocol

  • 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
  • 나의 로컬 pc로부터 원격지에 코드, 데이터, 파일 등을 올릴 때 사용
ssh <pem> <user>@<serverIp>

또한 scp를 사용해 파일을 전송해서 사용할 수 있음

3. FTP

File Transfer Protocol

  • 노드와 노드 간의 파일을 전송하는데 사용되는 프로토콜
  • 파일을 암호화하여 전송하는 FTPS 또는 SFTP로 대체되고 있음

4. SMTP

Simple Mail Transfer Protocol

  • 인터넷을 통해 메일을 보낼 때 사용되는 프로토콜
  • 보통 서비스를 운영하면 메일링 서비스를 하게 되는데, node.js를 통해 메일을 보낸다면 NodeMailer 라이브러리를 사용해야 하고 이는 JS를 기반으로 SMTP를 통해 메일을 보낼 수 있는 라이브러리이다.

전송 계층 (transport)

TCP, UDP가 대표적

  • 애플리케이션 계층에서 받은 메시지를 기반으로 세그먼트(TCP) 혹은 데이터그램(UDP)으로 데이터를 쪼개고, 데이터가 오류 없이 순서대로 전달되도록 도움을 주는 층

1. TCP

Transmission Control Protocol

  • header 20-60 bytes

가상회선패킷교환방식

  • 회선을 기반으로 순서대로 전달

오류 검사 메커니즘

  1. 재전송: 시간 초과 기간이 지나면 서버는 전달되지 않은 데이터에 대해 재전송을 시도
  2. 체크섬: 체크섬을 통해 무결성(데이터가 올바르게 왔는지)을 평가. 즉 송신된 데이터의 체크섬과 수신된 데이터의 체크섬 값을 비교해서 올바르게 왔는지를 확인

2. UDP

  • header 8 byte (= 32 bit) 고정 길이

데이터그램패킷교환방식

  • 순서 보장 X

오류검사는 단순한 체크섬만 지원

3. TCP VS UDP ⭐⭐

전송 제어 프로토콜 (TCP)데이터그램 프로토콜 (UDP)
패킷 교환 방식가상회선패킷교환방식데이터그램패킷교환방식
신뢰성OX
오류 검사재전송, 체크섬체크섬
패킷의 순서 보장OX
헤더 길이20 ~ 60 byte 가변 길이8 바이트 고정 길이
연결 보장연결을 보장함. 3웨이 핸드셰이크로 연결을 맺고 4웨이 핸드셰이크로 연결을 해제하는 작업이 필요연결을 보장하지 않음 그냥 데이터를 보냄. 연결을 유지하고 해제하는데 드는 비용이 없음
브로드캐스트 지원XO
속도느림빠름

인터넷 계층

IP, ICMP, ARP가 대표적이며 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화하여 전송

1. ICMP

Internet Control Message Protocol

  • 노드와 노드 사이에서 통신이 잘되나를 확인할 때 사용하는 프로토콜
  • 데이터를 교환하는데 사용되는 것이 아니라 테스팅에 사용된다
  • IP와는 달리 TCP 또는 UDP와 같은 전송 계층 프로토콜과 연관되지 않고, 독립적인 비연결형 프로토콜. (ICMP는 비연결형 프로토콜을 기반으로 구축된다. )

ex) ping

ping www.google.com

REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글