Computer Science/📡Network
[Network] 네트워크 기본 - 2
seungwookim
2021. 11. 12. 19:20
이석복 교수님의 컴퓨터네트워크 강의를 듣고 정리하였습니다.
네트워크 계층 모델 3가지
- 네트워크 계층 모델
- 네트워크 프로토콜 디자인과 통신을 여러 계층으로 나누어 정의
- 계층별로 역할을 분리
- 각 계층이 독립적으로 기능 수행
- 계층 간 통신을 통해 전체 통신 프로세스를 이룬다.
- 장점
- 네트워크 통신 과정 단계별로 파악
- 문제 발생 시 문제 발생 계층을 빠르게 진단할 수 있음.
- H/W와 S/W를 표준화함으로써 서비스나 기기 간 호환을 가능하게 한다.
- OSI(Open Systems Interconnetion Reference Model)
- 다양한 컴퓨터 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구(ISO)에서 만든 개념 모델
- 7계층
- TCP/IP Model
- 미국 국방부(DoD)에서 정의한 현재 산업 표준 네트워크 통신 모델이다.
- TCP/IP가 OSI보다 더 먼저 사용되었기 때문
- 4계층 / 5계층(Updated)
- 미국 국방부(DoD)에서 정의한 현재 산업 표준 네트워크 통신 모델이다.
TCP/IP 5계층 모델
L5 - Application Layer(응용 계층)
- 프로그램 구현체와 사용자 인터페이스를 의미
- OS에서 제공하는 TCP/UDP 기반의 응용 프로그램을 구현할 때 사용
- Protocol Data Unit
- Message
- Protocol
- HTTP, SMTP, FTP, SSH, POP
L4 - Transport Layer(응용 계층)
- Process-to-Process Delivery
- Port 번호를 사용해 최종 도착지인 프로세스까지 데이터를 전달
- OS 커널에서 구현
- Addressing
- Port Number
- Protocol Data Unit
- Segment, Datagram
- Protocol
- TCP, UDP
L3 - Network Layer(네트워크 계층)
- Host-to-Host Delivery
- 라우팅(Routing)과 포워딩(Forwarding)을 수행해서 목적지 IP 주소까지 패킷을 전달한다.
- OS 커널에 구현
- URL이 주어지면 DNS를 통해 IP주소를 찾고 실제 패킷은 IP 주소를 향해 전송된다.
- IP 주소의 광역대에 따라 Routing Table에 지정된 경로로 패킷을 Forwarding한다.
- Addressing
- IP Address
- Protocol Data Unit
- Packet
- Protocol
- IP
- Internet Potocol Address
- Host의 논리적 주소로, 전 세계의 네트워크 상에서 유일하다.
- IPv4는 4byte, IPv6은 8byte 주소를 갖는다.
- IP
L2 - Data-Link Layer(데이터 링크 계층)
- 1-hop delivery
- 라우팅(Routing)과 포워딩(Forwarding)을 수행해서 목적지 MAC 주소까지 프레임을 전달한다.
- 인접 노드들 간의 신뢰할 수 있는 전달
- Ethernet Card에 구현
- Addressing
- MAC Address
- Media Access Control Address
- Ethernet Card의 물리적 주소, 로컬 네트워크 안에서만 유일
- Gateway(라우터)는 Ethernet Card를 2개 가지며, LAN과 WAN을 연결
- MAC Address
- ARP
- Address Resolution Protocol
- LAN 내부의 ARP Table을 참조하여 IP 주소를 MAC 주소로 변환
- Protocol Data Unit
- Frame
- Protocol
- IEEE 802, Ethernet, Wi-Fi
L1 - Physical Layer(물리 계층)
- Encoding: 0과 1의 디지털 신호를 아날로그 신호로 변환하여 전송
- Decoding: 아날로그 신호를 0과 1의 디지털 신호로 해석
- Hardware에 구현
(사진 및 내용 출처: 티스토리)
Client-Server Architecture
- server
- 바뀌지 않는 고정된 IP 주소를 가져야 함
- client
- IP 주소를 가지고 있되, 고정되지 않아도 됨
Sockets
- 소켓은 프로세스가 네트워크를 통해 데이터를 보내거나 받기 위한 실제적인 창구 역할을 한다.
- 소켓의 주소(인덱싱) 역할은 IP와 Port가 담당한다.
- IP: 인터넷 상에 존재하는 컴퓨터의 위치
- Port: 하나의 컴퓨터에 존재하는 여러 프로세스 중 하나를 특정
Port를 통일하는 이유
웹 브라우저를 이용해 구글, 네이버 등 웹페이지를 접속할 때 우리는 일반적으로 www.google.com, www.naver.com 과 같은 url을 입력한다. 이는 DNS를 거쳐 IP로 변환되고 생략된 port는 기본값이 80이다.
모든 웹 서비스의 port가 제각기 다르다면 각각의 웹페이지에 접속하기 위해 우리는 매번 port를 입력해야하고 이는 번거로운 일이다. 따라서 http 기본 port를 80으로 통일한다.
앱이 네트워크에 기대하는 4가지
- Data Integrity
- 중간에 유실되는 문제 없이 정확하게 데이터가 전송되는 것
- Timing
- 데이터가 전달되는 속도
- low delay, 빠른 전송 속도
- Throughput
- 단위 시간당 디지털 데이터 전송으로 처리하는 양
- 빠른 처리량
- Security
- 전송되는 과정에서의 보안
Transport Layer에서는 1번만을 보장한다 (TCP 한정) . Security는 Application Layer에서 구현한다.
HTTP
- Hypter Text Transfer Protocol: 하이퍼텍스트를 전송하는 프로토콜
- Application Layer 프로토콜이다.
- 특히, Transport Layer의 TCP를 사용한다.
- 클라이언트-서버 모델
- 클라이언트의 Http Request
- 서버의 Http Response
- Stateless
- Client의 상태를 저장하지 않는다.
Persistent vs Non-persistent
- Persistent 방식
- 추가적으로 요청할 오브젝트가 있을 수 있기 때문에 소켓 연결을 끊지 않고, 바로 다시 요청을 할 수 있다.
- 병렬 요청 (파이프라인)
- Non-Persistent 방식
- 하나의 Request에 대한 Response 후 접속(Connection)을 끊는다.
- Connection: close를 하지 않아도 소켓 연결이 알아서 끊긴다.