네트워크

서승·2025년 6월 29일

기술 지식

목록 보기
12/12

OSI 7계층과 TCP/IP 4계층

OSI 7 계층

  • 1계층 (물리 계층) : 전기적, 기계적 특성을 이용하여 시스템 간 물리적인 연결을 담당 (주로 하드웨어)
  • 2계층 (데이터 링크 계층) : 네트워크 기기간 데이터 전송을 관리, 물리주소 부여 (이더넷)
  • 3계층 (네트워크 계층) : 다른 네트워크와의 데이터 통신을 위한 경로 설정 및 논리 주소 결정 (IPv4, IPv6)
  • 4계층 (전송 계층) : 두 지점 간의 신뢰성 있는 통신을 담당 (TCP, UDP)
  • 5계층 (세션 계층) : 통신을 위해 세션을 만드는 계층
  • 6계층 (표현 계층) : 데이터의 표현 방식을 결정 (데이터 변환, 암호화 등)
  • 7계층 (응용 계층) : 사용자에게 통신을 위한 서비스를 제공

TCP/IP 4계층

OSI 7계층은 네트워크 통신 과정을 이론적으로 정의한 모델

TCP/IP는 실제 네트워크 통신에서 사용되는 표준 모델

  • 1~2계층: 네트워크 접근 계층 (물리 계층 + 데이터 링크 계층)
  • 3계층: 인터넷 계층 (네트워크 계층)
  • 4계층: 전송 계층 (TCP, UDP)
  • 5~7계층: 응용 계층 (HTTP, FTP, SMTP 등 포함)

TCP 와 UDP

TCP 와 UDP의 특징

TCP (Transmission Control Protocol)

인터넷 상에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 → 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 연결 지향적 프로토콜

TCP는 연결형 서비스로 3 way handshake 과정을 통해 연결하고, 4 way handshake 과정을 통해 연결을 해제하기 때문에 높은 신뢰성을 보장한다.

UDP (User Datagram Protocol)

UDP는 비연결형 서비스로 3 way, 4way handshake와 같은 과정을 거치지 않기 때문에 신뢰성을 떨어지지만, 효율성을 중요시하는 프로토콜

일방적으로 데이터를 보내고 수신 여부를 확인하지 않고, 송신 확인 정도의 절차만 거쳐 속도가 빠르다.

TCP는 신뢰성이 중요한 경우 쓰이고, UDP는 실시간성이 중요한 스트리밍에 자주 사용

3way, 4way handshake ?

3 way handshake는 연결 시에 서로 연결이 잘 되었는지 확인하는 방법

4 way handshake는 연결을 해제하는 방법

3 way handshake 과정

  1. Client -> Server 연결 요청
  2. Server -> Client 연결 요청 확인
  3. Client -> Server 연결

Data 전송 시

  1. Client -> Server 패킷 전송
  2. Server -> Client 요청 확인 (데이터를 잘 받았다는 신호)
  3. 2번 응답이 없으면 Client는 Server로 패킷을 재전송 한다.

4 way handshake 과정

  1. Client -> Server 연결 종료 요청
  2. Server -> Client 요청 확인 (대기하세요)
  3. Server -> Client 종료 요청 (이제 종료해도 됩니다.)
  4. Client -> Server) 연결 종료 (종료했습니다.)

쿠키와 세션

HTTP는 무상태성

HTTP가 무상태성이라는 특징을 가지고 있어서, 통신이 끝나면 상태를 유지하지 않는다. 이를 보완하고자 사용하는 것이 쿠키와 세션

쿠키

클라이언트는 쿠키를 브라우저에 저장해 뒀다가 HTTP 요청 시 서버로 전달하여 데이터를 요청하는 데에 사용할 수 있다.

그러나 쿠키는 클라이언트에서 쉽게 조회, 변경할 수 있고, 그 값을 조작할 수 있다는 단점이 있다.

이 문제를 해결하기 위해 세션을 사용한다.

세션

세션은 쿠키에 기반하여 만들어졌고, 쿠기와 값이 키-값 으로 만들어졌지만 값을 임의의 uuid로 저장하고 이 uuid에 해당하는 데이터는 서버 측에서 관리

HTTP 와 HTTPS의 차이점

HTTP는 데이터를 암호화하지 않고 전송하는 프로토콜이고, HTTPS 는 SSL/TLS를 통해 데이터를 암호화해 안전하게 전송하는 프로토콜이다.

profile
정진 또 정진

0개의 댓글