Neoself의 기술 블로그

CS 정리 (10월 30일) 본문

개발지식 정리/CS정리

CS 정리 (10월 30일)

Neoself 2024. 10. 30. 23:00

OSI 7계층 모델: 컴퓨터들이 서로 통신하는 방법을 7개의 층으로 나눈 표준 모델(기능 중심)

  • 응용 계층(7계층): 사용자가 직접 접하는 층, 이메일과 같은 앱 HTTP/HTTPS(웹 브라우저로 웹사이트 접속 시) FTP(서버-클라이언트 간 파일 전송시) DNS(도메인 주소를 IP주소로 변환 시) SSH(원격 서버에 안전하게 접속하고자 할 시)
  • 표현 계층(6계층): 파일 압축, 텍스트 인코딩과 같이 데이터의 형식을 변환하는 계층 SSL/TLS: 데이터 암호화 및 보안 통신 JPEG,MPEG: 이미지/영상 압축 ASCII: 문자 인코딩
  • 세션 계층(5계층): 통신하는 장치들의 대화를 관리하는 계층 SQL:데이터베이스 접근 및 조작 NetBIOS: 네트워크 상의 컴퓨터 간 기본적 통신
  • 전송 계층(4계층): TCP, UDP와 같이 데이터의 전송을 관리하는 계층 TCP:신뢰성 있는 데이터 전송 (웹 브라우징, 이메일) UDP: 빠른 속도 중심의 데이터 전송(스트리밍, 게임)
  • 네트워크 계층(3계층): IP주소를 사용하여 데이터가 목적지까지 가는 최적의 경로를 찾는 계층 IP: 인터넷 통신의 기본 (IPv4,IPv6) OSPF,BGP: 라우팅 경로 설정
  • 데이터링크 계층(2계층): 와이파이, 이더넷과 같이 직접 연결된 기기 간의 통신을 담당하는 계층 Ethernet: 유선 네트워크 연결 Wi-Fi: 무선 네트워크 연결
  • 물리 계층(1계층): 네트워크 케이블과 같이 실제 전기 신호나 빛으로 데이터를 전송하는 계층 USB: 주변기기 연결 Bluetooth: 근거리 무선 통신

예시: 웹 사이트 접속 단계의 경우,

브라우저가 HTTP 요청 생성 → SSL로 암호화 → TCP로 데이터 전송 관리 → IP로 목적지까지 라우팅 → 와이파이로 실제 전송

 

TCP/IP 모델: 인터넷의 실제 표준(프로토콜 중심)

OSI모델을 4개층으로 단순화한 실용적인 버전

  • 응용계층: 5,6,7계층 통합 = 사용자 레벨의 응용프로그램과 통신 HTTP, FTP, SMTP, DNS, SSH
  • 전송 계층: TCP, UDP
  • 인터넷 계층: 데이터 패킷의 라우팅과 전달 담당, ICMP로 네트워크 오류 감지하고, IP주소로 전송 IP, ICMP, ARP
  • 네트워크 접근 계층: 물리계층과 데이터 링크 (1&2계층) 결합 = 물리적 네트워크 하드웨어와의 통신 담당 Wi-Fi, Ethernet

HTTP 프로토콜:웹에서 데이터를 주고받는 규칙

HTTP

각 요청이 독립적으로 처리되어 이전 요청을 기억하지 않는 무상태(Stateless) 성질을 띤다. 따라서 쿠키와 세션으로 상태를 유지해야함.

HTTP/2

여러 요청을 동시에 처리하는 멀티플렉싱을 지원

서버가 클라이언트에게 필요한 리소스를 미리 보내줄 수 있음.

헤더 압축으로 전송 효율 향상

HTTP/3

네트워크 전환 시에도 연결 유지

QUIC 프로토콜 사용으로 더 빠른 연결 설정

 

TCP

연결 지향형 프로토콜(TCP):

데이터 전송 전에 연결 먼저 수립

데이터 전송 보장, 손실 시 재전송

순서 보장

3-way handshake로 연결 수립:

UDP

비연결 지향형 프로토콜(UDP):

빠른 전송 속도를 갖고 있으나, 데이터 손실 가능성이 있음

어떤 상황에서 UDP를 사용하는 것이 적합한가요?

빠른 전송속도가 필요하고, 실시간성이 중요한 실시간 스트리밍 서비스나 온라인 게임에 적합

 

TCP의 3-way handshake

1. 클라이언트: "연결하고 싶어요" (SYN) 클라이언트가 서버에 연결 요청

2. 서버: "알겠어요" (SYN-ACK) 서버가 요청을 받았음을 알리고, 자신도 연결 요청

3. 클라이언트: "연결 시작해요" (ACK) 클라이언트가 서버의 요청을 수락

 

 

소켓 통신

네트워크로 연결된 프로그램 간의 양방향 통신 방식.

전화 통화처럼 실시간으로 데이터를 주고받을 수 있음.

채팅 앱이나 실시간 게임에서 주로 사용됨.

 

구성 요소:

  • IP 주소: 통신 대상 위치
  • 포트 번호: 특정 애플리케이션 식별

통신 과정:

  • 서버: 소켓 생성 및 특정 포트에서 대기
  • 클라이언트: 서버의 IP와 포트로 연결 요청
  • 연결 수립 후 양방향 데이터 통신

'개발지식 정리 > CS정리' 카테고리의 다른 글

CS 정리 (10월 22일)  (0) 2024.10.22