on
[Network] 네트워크 기본 - 2
[Network] 네트워크 기본 - 2
이석복 교수님의 컴퓨터네트워크 강의를 듣고 정리하였습니다.
네트워크 계층 모델 3가지
네트워크 계층 모델 네트워크 프로토콜 디자인과 통신을 여러 계층으로 나누어 정의 계층별로 역할을 분리 각 계층이 독립적으로 기능 수행 계층 간 통신을 통해 전체 통신 프로세스를 이룬다. 장점 네트워크 통신 과정 단계별로 파악 문제 발생 시 문제 발생 계층을 빠르게 진단할 수 있음. H/W와 S/W를 표준화함으로써 서비스나 기기 간 호환을 가능하게 한다.
OSI(Open Systems Interconnetion Reference Model) 다양한 컴퓨터 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구(ISO)에서 만든 개념 모델 7계층
TCP/IP Model 미국 국방부(DoD)에서 정의한 현재 산업 표준 네트워크 통신 모델이다. TCP/IP가 OSI보다 더 먼저 사용되었기 때문 4계층 / 5계층(Updated)
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 주소를 갖는다.
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을 연결
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를 하지 않아도 소켓 연결이 알아서 끊긴다.
from http://seungwoolog.tistory.com/74 by ccl(A) rewrite - 2021-11-12 19:27:07