네트워크

해피데빙·2022년 11월 14일
0

  • 링크 : 엣지와 노드의 연결
  • 엣지 : 호스트, 애플리케이션
  • core : 라우터
  • access networks, physical media: 코어와 엣지를 연결해주는 ex. 무선 링크

클라이언트 - 서버와 의사소통

: 인터넷 통신 서비스를 통해
1) connection oriented service : TCP
(Transmission Control Protocol)

(1)reliable, in-order (byte stream data transfer): 메시지 유실 없이 가는지, 순서를 지키는지

(2)flow control : sender가 정보를 보내는 속도를 일정하게 유지해주는 것
ex. sender가 슈퍼 컴퓨터면 receiver가 소화할 수 없을 정도

(3)congestion control : sender, receiver 사이 속도 차이가 없어도 각자의 네트워크 상황에 맞춰서 소화할 수 있을 정도로 보내주는 것

단점 : 컴퓨팅 리소스, 네트워크 자원 등 비용이 더 든다

2) UDP
(User Data Protocol)

  • connectionless
  • unreliable data transfer
  • no flow control
  • no congestion control
    : 유실 여부 무관할 때 절차 없이 편하게 보낼 때
    : 속도 빠름
    ex. 음성 전화 등 (리얼타임에서 오디오 패킷이 몇개 유실되어도 사람들이 잘 모르니까)

장점 : 자원이 덜 든다

프로토콜이란?

중요한 메시지를 주고 받기 위한 준비 단계
ex. 대화에서 앞에 스몰토크를 하고 본론에 들어가는 듯이
ex. "나 부장님이랑 프로토콜이 안 맞아"ㅋㅋㅋㅋ

서로 다른 개체니까 어떤 식으로 소통할지 미리 이야기해야 대화가 된다

  • 네트워크의 중심에는 라우터가 있다
  • net을 통해 데이터를 전송할 수 있는 두가지 방법
    (1)circuit switching
    : 출발지에서 목적지까지 가는 길을 미리 예약하고 특정 사용자만 사용할 수 있도록 하는 것
    : 이를 모두 circuit으로 (유선)
    ex. 예전 유선 전화

(2)packet switching
: 사용자가 유저가 보내는 메시지를 패킷 단위로 받아서 그때그때 필요한 것을 forwarding하는 것
: 인터넷으로 보내는 것

  • circuit switching : 1MB를 1kb를 쓸 수 있는 10명이 사용하는 등 정해진 양을 나눠서 사용한다
    ex. 전화를 사용하는 동안 계속 말한다

  • packet switching : 제약이 없음. 그러므로 계속 유지하는 게 아니라 연결이 됐다 안됐다하는 형식으로.
    ex. 기사를 읽을 때도 왔다갔다하면서 하나를 읽으니까

  • packet switching으로 생기는 문제들
    : packet이 새로운 라우터로 가서 확인하는 것
    새로운 packet을 받으면 검사하고 그 목적지를 확인하고 목적지에 따라서 알맞은 output을 구하는 것

packet을 받으면 process & delay
queue에 붙는다

1)packet 검사 - process delay
2)outgoing edge에 뿜어내야하는데 만약 다른 애들도 나가려고 기다리면 queue에 서서 기다린다 (queueing delay)

proportion delay

  • 마지막 비트가 링크에 올라와서 다음
  • 다음 라우터에 올라올 때까지 걸리는 시간
  • 전자기파가 움직이는 속도(빛의 속도) : 이건 절대적인 속도니까 이 delay시간은 링크의 길이에 비례

나가는 속도보다 들어오는 속도가 빠르면 buffer용으로 queue가 하나 있다
queue에서 기다리면 queueing delay
패킷 크기를 bandwidth 로 나눈 것
(bandwidth가 클수록 속도가 빠른다)

  1. process delay: packet 들어올 때마다 검사하는 시간 (해결: 더 좋은 라우터 - 성능 좋은 CPU등 ex. 하이패스로 변경)
  2. queueing delay : 나가려는 애들이 많아서 큐에서 기다릴 때 걸리는 시간 (해결 : 큐의 길이에 따라 다름. 인터넷을 사용하는 양에 따라 큐의 길이가 달라지니까 조절이 불가능. 몰리다보면 packet 유실이 된다. 그러므로 대부분의 유실은 queueing delay에서 일어난다)
  3. transmission delay: 완전히 파이프에서 빠질 때까지 걸리는 시간 (해결 : bandwidth를 키운다 ex. 케이블의 지름을 넓힌다
    ex. 4차선로로 확장)
  4. propagation delay: 다시 router에 닿을 때까지 걸리는 시간

유실이 일어나면 재전송이 필요하다
처음으로 전송한 라우터에서 다시 전송한다. 왜냐하면 각각의 edge에만 관련 데이터를 가지고 있기 때문이다. 중간에 있는 라우터들은 엄청 많은 데이터들을 넘겨주는 단순 작업을 극대화해 가속화하기 때문에.
이런 라우터들을 dumb core라고 한다.

profile
노션 : https://garrulous-gander-3f2.notion.site/c488d337791c4c4cb6d93cb9fcc26f17

0개의 댓글