서론
Our goal (목표):
- get "feel" and terminology: 감각과 용어 이해하기
- more depth, detail later in course: 수업에서 더 깊이 있고 자세한 내용을 다룸
- approach: 접근 방식
- use Internet as example: 인터넷을 예시로 사용
Overview (개요):
- what's the Internet: 인터넷이란 무엇인가?
- what's a protocol?: 프로토콜이란 무엇인가?
- network edge: 네트워크 엣지
- access net, physical media: 접근 네트워크와 물리적 매체
- network core: 네트워크 코어
- Internet/ISP structure: 인터넷/ISP(인터넷 서비스 제공자) 구조
- performance: loss, delay: 성능: 손실, 지연
- protocol layers, service models: 프로토콜 계층 및 서비스 모델
- network modeling: 네트워크 모델링
우리들
ㅡ> 가장자리 (network edge)
라우터
ㅡ> 중앙 (network core)
네트워크 구조 (Network Structure)
네트워크 엣지 (network edge)
ㅡ> application (웹, 이메일 등)
ㅡ> hosts
ㅡ> 랩탑 덮으면 끊어지고.. 열면 연결되고...
네트워크 코어 (network core)
ㅡ> 라우터 (routers) ▶ 위의 그림에서 동그라미에 x표시된 도형
ㅡ> network of network
통신 링크 (communication links)
ㅡ> 어떤 링크는 무선링크(ex. WIFI, LTE)
네트워크 엣지 (Network Edge)
네트워크 엣지
ㅡ> 네트워크의 끝 부분에 위치한 장치와 시스템
ㅡ> 네트워크의 최종 사용와 가까운 부분
호스트 (hosts)
ㅡ> end system
ㅡ> 사용자 단말기 (컴퓨터, 스마트폰 등)
ㅡ> 어플리케이션(웹, 이메일 등) 실행하는 시스템
클라이언트/서버 모델
ㅡ> 서버는 항상 켜져있음
ㅡ> 클라이언트가 서버에 서비스를 요청하고 수신함
예) 웹 브라우저/서버, 이메일 클라이언트/서버
웹 브라우저(클라이언트)가 웹 서버에 페이지 요청을 보내면, 서버는 해당 페이지를 반환합니다.
네트워크 엣지에서 사용하는 통신 서비스
1. connection-oriented service (연결 지향 서비스)
2. connectionless service (비연결형 서비스)
연결 지향 서비스 (Connection-oriented service)
TCP
Reliable, in-order byte-stream data transfer (신뢰할 수 있는 순차적 바이트 스트림 데이터 전송)
ㅡ> Reliable : 보낸게 그대로 전달
ㅡ> in-order byte-stream data transfer: 보낸 순서 지키면서 전달
Flow control (흐름 제어):
ㅡ> sender가 data를 보내는 속도를 조절
ㅡ> Receiver가 처리할 수 있는 속도에 맞춤
Congestion control (혼잡 제어)
ㅡ> 네트워크가 혼잡할 때 sender가 전송속도 줄임
ㅡ> 데이터 손실 방지, 네트워크 혼잡 상태 완화
비연결형 서비스 (connectionless service)
UDP
- connectionless: 비연결형
- unreliable data transfer: 신뢰할 수 없는 데이터 전송
- no flow control: 흐름 제어 없음
- no congestion control: 혼잡 제어 없음
ㅡ> 위에거 아무것도 안해줌
ㅡ> data 유실돼도 상관없고 그럴때 사용
TCP에 비해 아무것도 안해주는데 UDP는 왜 쓸까?
ㅡ> 빠른속도(x) (받는입장 고려안하고 막 들이붓는거라서 장점이 아님. 도착보장이 안됨)
ㅡ> reliable이 필요없는 경우에 쓴다 (o) ▶음성전화 : 오디오 패킷 몇 개 유실돼도 사람이 인지 못 함
패킷 (Packet)
ㅡ> 메세지 들어있는 편지봉투같은 것
ㅡ> 중요한 편지는 등기같은거 하듯이, TCP를 함 (reliable)
ㅡ> 등기는 비용을 발생하듯이, TCP는 컴퓨팅 리소스, 네트워킹 리소스를 비용이 발생
프로토콜(Protocol)은 무엇인가
Protocol
ㅡ> TCP, UDP, HTTP 등 P로 끝나는 것들이 이것을 가리킴
사람간의 프로토콜 vs 컴퓨터 네트워크 프로토콜
ㅡ> 사람끼리 대화할 때, 대뜸 본론부터 말하지 않고, 먼저 인사를 하는 관습, 약속이 있다
ㅡ> 컴퓨터끼리도 통신할 때도 이런 약속이 있다
ㅡ> 그게 프로토콜이다.
프로토콜이 안맞는 경우
ㅡ> 사람끼리도 대화가 잘 안통하는 경우가 있다
ㅡ> 컴퓨터도 서로 프로토콜이 안맞으면 통신이 안된다.
ㅡ> ex) 한쪽은 TCP프로토콜, 한쪽은 UDP프로토콜을 쓰면 통신 안됨
네트워크 코어
ㅡ> 라우터들이 얽히고 섥힌 집함
ㅡ> 라우터들이 데이터 목적지까지 전달
라우터가 어떤방식으로 전달할까
1. 회선 교환
2. 패킷 교환 ㅡ> 인터넷
회선 교환 (Circuit Switching)
ㅡ> 출발지부터 목적기까지 가는 길을 예약해놓고 그 사용자만을 위해 사용
ㅡ> 예선 유선 전화망
패킷 스위칭
ㅡ> 유저가 보내는 패킷을 그때그때 받아서 포워딩
ㅡ> 그림 : A라는 유저가 보낸 패킷, B라는 유저가 보낸 패킷. 보낸 순서대로 라우터가 그냥 보내주는 그림
패킷 스위친 vs 서킷 스위칭
1Mbps link
ㅡ> 초당 1M비트의 data를 전달할 수 있는 케이블
ㅡ> 각 유저가 100Kbps로 data 보낸다고 가정
서킷 스위칭
ㅡ> 10명의 유저까지 지원
패킷 스위칭
ㅡ> 유저 수 제한 없음
ㅡ> 인터넷이 이 방식 채택
ㅡ> 인터넷 사용자는 클릭하고 다음 클릭까지 시간텀이 있는 사용패턴이 있음
ㅡ> 인터넷 사용자 모두가 동일한 타이밍에 클릭할 확률이 낮음
ㅡ> 수강신청처럼 클릭 타이밍 겹칠 때가 문제
패킷 딜레이
1. Nodal Processing Delay
라우터에서 패킷받았을
패킷 검사해서 목적지가 어딘지 확인
2. Queueing Delay
라우터에서 out하는 속도보다
in하는 속도가 빠른경우
ㅡ> 대기열(queue) 발생
ㅡ> queue가 넘치면 data loss 발생
ㅡ> 패킷loss의 대부분은 여기서 발생
3. Trasmission Delay
패킷크기가 링크 전송 속도보다 클 때
(파이프가 가늘어서 바가지의 물을 천천히 쏟아야되는 상황을 연상)
딜레이 = 패킷크기/전송속도
4. Propagation Delay
이건 단순히 빛의 속도
딜레이 = link길이/빛의 속도
우리가 어쩔 수 없는 딜레이
줄이는 법
1. Nodal Processing Delay
ㅡ> 라우터 성능을 개선
2. Queueing Delay
ㅡ> 사용자가 몰리는라 개선x
3. Trasmission Delay
ㅡ> 케이블 공사해서 bandwith 늘림
4. Propagation Delay
ㅡ> 빛의 속도는 못바꿔서 개선x
큐잉에서 패킷 loss가 발생하는데
TCP는 어떻게 신뢰성을 유지하나?
ㅡ> 패킷 재전송
네트워크 코어
ㅡ> 전송속도를 위해서, 단순히 전송만 한다 (뇌빼고 단순노동)
네트워크 엣지
ㅡ> (클라이언트, 서버)
ㅡ> 재전송같은 복잡한 로직은 네트워크 엣지에 있다
'CS > 네트워크' 카테고리의 다른 글
전송계층2 - TCP, segment구조, RTT, 타임아웃 (0) | 2024.09.20 |
---|---|
전송계층 1 - RDT효율 : Go-Back-N, Seletive Repeat (0) | 2024.09.20 |
2. 어플리케이션 계층2 (0) | 2024.09.15 |
2. 어플리케이션 계층 (0) | 2024.09.09 |
컴퓨터네트워크 기본2 (1) | 2024.09.04 |