네트워크

장서연·2021년 4월 21일
0

1주 1회차

pc의 경우, Acess point에 유선으로 연결하여 사용하고, 노트북의 경우 보통 무선으로 연결하여 쓴다. 스마트폰의 경우 집에서는 AP에 연결하여 쓰지만 밖에 나가면 기지국에 연결한다.

이것으로 알 수 있는 것은, 네트워크도 종류가 다양하다는 것이다. 유선네트워크 안에도 여러 갈래가 있고, 무선네트워크에도 여러갈래(5G, 와이파이, 4G), 센서 네트워크 등 여러 종류의 네트워크가 존재한다.

OSI 7계층은 유/무선 구분하지 않고 동시에 적용되는 개념이다.

1주 2회차

네트워크 동작을 수행하는 모든 디바이스에는 기본적으로 OSI7계층이 올라가 있어야 한다. 이게 실제 구현으로는 4계층으로 올라가 있지만, 어쨌든 7계층이 하는 역할을 네트워크 동작하는 모든 디바이스가 갖춰야만 함

1계층, 물리계층

케이블, 무선, UTP, 라디오 등 여러 물리 매체가 있는데, 이를 통해 데이터를 주고받기 위해서는 각 매체에 맞는 전기적 특징을 이용해야한다. 라디오라면 공기중에 쏟아지는 전파를 사용해 데이터를 주고 받아야하고, 동축케이블이라면 동축 케이블 특성에 맞게 주고 받아야한다. 물리계층에서는 이러한 매체들의 특성에 따라 데이터를 주고받는 방식을 정의하는 역할을 한다.

네크워크 프로그래밍을 한다는 것은 5~7 레이어를 작성하는 일이다.

1,2 계층은 하드웨어에 구현되어있으며, 3,4 계층은 운영체제에 소프트웨어적으로 구현되어있다.

2주 1회차

  • network edge : 네트워크 내부. 사용자와 관련된 네트워크, 즉 사용자가 접근하는 네트워크이다.
  • network core : 여러 네트워크를 이어주는 구조

네트워크들을 이어주는 코어네트워크를 인터네트워킹이라 한다. 즉 인터넷

스위치: 여러 네트워크 선들이 스위치로 연결되어 하나의 아웃풋으로 나가게 하는 기능을 한다.
라우터: 여러 네트워크 선들이 라우터로 연결되어 나가는 길이 여러개이며 이 나가는 길을 결정해주는 기능을 한다.

정리: 스위치와 라우터 모두 여러 네트워크 선들이 모이지만, 스위치는 나가는 길이 하나이고, 라우터는 나갈 수 있는 길이 여러개이며 나가는 방향을 정하는 기능을 한다.

인터넷을 "nuts and bolts" view, 즉 구성 요소의 측면에서 분석하기

  • devices
    pc나 스마트폰, 노트북, 서버 등을 단말, 호스트, end system 이라 한다.
  • communication link
    fiber, 구리, 공기, 위성 등 어떤 매체로 디바이스들이 연결되어 있는지. 어떤 커뮤니케이션 링크로 연결되어있는지에 따라 bandwidth(한번에 보낼 수 있는 데이터량)가 달라진다.
  • 데이터 전송방법
    데이터를 전송하는 방법에는 두가지가 있다. 첫번째는 packet switch, 두번째는 circuit switch 이다. 인터넷은 데이터를 데이터를 쪼개서 보내기 때문에, 패킷 스위칭이 더 효율적이다. 패킷이 가는 경로는 대부분 같은 경로로 가는 경우가 많지만 라우터의 상태가 좋지 않다면 다른 라우터를 통해 보낸다. 즉 각 패킷보다 라우팅 경로가 독립적으로 결정되게 되는데, 이것을 패킷 스위칭이라 한다.
  • 인터넷
    네트워크의 네트워크 = 인터넷 ISP에 의해 연결된다
  • 프로토콜
    서로 데이터를 주고받기 위한 통신 규칙이다. 메시지의 송/수신에 사용할 포맷과 순서를 정의한다.
    미리 정의된 프로토콜을 통해, 같은 프로토콜을 사용하는 경우 디바이스들끼리 데이터를 주고받을 수 있게 된다. 즉 미리 규칙을 정해두는 것이다. 각 계층에서 미리 정의된 프로토콜들이 있다. 예를 들어, 4계층에서 TCP를 사용하고, 3계층에서 IP를 사용한다면, TCP/IP 프로토콜을 따라 구현된 디바이스들은 서로 데이터를 주고 받을 수 있게 된다. HTTP는 어플리케이션 계층의 프로토콜 중 하나이다. 802.11은 이더넷 프로토콜 중 하나로 데이터 링크 계층의 프로토콜이다.
  • 인터넷 표준
    OSI 7레이어 정의, TCP/IP 정의 등

인터넷을 service view로 보기

인터넷이란, 어플리케이션에 서비스를 제공할 수 있는 인프라스트럭쳐이다. 인터넷은 앱을 위한 프로그래밍 인터페이스를 제공한다. 대부분의 앱을 만들기 위해서는 네트워크를 사용해야 하는데, 이를 위해 소켓이라는 프로그래밍 인터페이스를 사용한다. 소켓 프로그램이 인터넷의 기능을 활용해 데이터를 가지고오고, 전송하는 기능을 한다.

네트워크 구조


1. network edge
host: client and server
2. access network
사용자가 인터넷 사용을 위해 1차로 엑세스한 네트워크이다. 즉 네트워크 코어로 나오기 전까지의 네트워크를 의미한다.(게이트웨이 전까지)
3. network core
라우터로 연결되어있으며, 네트워크의 네트워크이다.

네트워크 코어


네트워크 코어는 라우터들의 메쉬이다. 라우터는 패킷단위로 라우팅을 한다. 네트워크 코어에서 발생할 수 있는 문제점으로 큐잉 딜레이와 로스가 있음. 어떤 라우터에서 보낼 수 있는 패킷의 양이 한도를 초과하게 되면 패킷이 쌓이게 됨(큐잉딜레이) 그런데, 쌓이는 패킷이 버퍼초과하면 패킷이 버려지게 됨(로스)

네트워크 코어는 라우터 간의 연결
라우터는 어떤 역할?
(1) 라우팅
(2) 포워딩



컴퓨터 네트워크에서 circuit(전용선) switching 이 아니라 packet switching 을 사용하는 이유는, burst 한 데이터의 경우 패킷으로 쪼개 보내는 것이 유리하기 때문이다. 또한 패킷스위칭은 더 많은 유저가 네트워크를 사용할 수 있게 함



3주 1회차

delay, loss, throughput
위 세가지가 네트워크의 성능평가 판단 기준이다.

패킷은 왜 delay 되고 loss되는가?

네트워크 트래픽은 burst 한 특징을 가지고 있다. 그렇기에 버퍼에 패킷이 쌓이게 되는데 쌓여서 기다리면 delay 되는 것이고, 버퍼가 다 차게 되면 loss되는 것이다.

패킷을 딜레이 시키는 4가지 요소

    1. nodal processing
      라우터에서 패킷을 받고 전송하기까지 걸리는 시간. 즉 데이터를 받은 뒤 프로세싱하는 데 걸리는 시간이다.(어느 라우터로 보내야 할지!) cpu연산으로 이루어지기 때문에, 딜레이의 4가지 요소중 가장 작다.
    1. queing delay
      버퍼에 들어와서 나갈때까지 걸리는 시간
    1. transmission delay
      하나의 패킷의 첫번째 비트부터 마지막 비트를 보낼때까지 걸리는 시간. 즉, 모든 비트가 링크에 실리기까지 걸리는 시간이다.
    1. propagation delay
      패킷의 모든 비트가 다음 라우터에 모이기까지의 시간. 전송 매체의 종류와 길이에 따라 달라진다.


캡슐화 (encapsulation)

peer 2 peer 즉 바로 옆에 있는 애들끼리이다. end 2 end 아님

링크 레이어의 서브레이어 두가지
1. error detection, correction
2. MAC(multiple access protocol)
2계층에서 왔다갔다 하는 애들을 프레임

peer to peer간의 연결이 link

비가 많이 오는날, 무선인터넷의 속도를 재보면 확실히 떨어짐. 왜? 에러난 거 다시 보내주고...반복

NIC카드안의 펌웨어에 구현되어있음

EDC를 보고 데이터가 깨졌는지 안깨졌는지 확인

Correction 이 들어가는 이유는, EDC 를 보고 깨진 부분을 고칠 수도 있기 때문임

ED 나 EDC

EDC의 코드가 더 길다. 당연히

2계층에서 데이터가 잘 왔는지 판단하는 법

parity checking

2Dimensinal parity 의 경우, 어디가 깨졌는지 특정할 수 있으므로 ED뿐만 아니라 EDC도 가능

그러나, 2D 도 깨졌는데도 정상적으로 온 것으로 착각하고 넘기는 경우 존재하지만 single parity 보다는 훨씬 낫다.

2계층에서, parity 도 안쓰고, checksum 도 사실 안씀. 왜냐, 에러 잘 못잡아내기 때문. 그래서 crc를 씀

checksum 은 4계층에서 end to end 의 데이터가 깨지지 않고 잘 왔는지 확인할 때 씀

checksum: 데이터를 쪼갠 것을 다 더해서 1의 보수를 취한것
헤더에다 첵썸을 집어넣음

받는애는 데이터를 다 더한다음 결과값이 모두 1이 나오면 데이터가 깨지지 않은 것. 1이 안나오면 데이터가 깨진 것.

crc 체크

이진수 R 을 정한다음 데이터에 CRC bit 를 붙이는데 R로 나누어 떨어지는 숫자를 붙이는 것. 받는 애는, R로 나눠봐서 떨어지면 제대로 온 것이라고 파악

R을 어떻게 정할 것인가?

수학자들이 미리 정해놓음

복잡한 crc 체크를 하는 이유는, 에러를 매우 잘 잡아내기 때문임. 32빗 보내면 쵀대 31빗까지 에러잡을 수 있음. 에러는 burst 하게 나기 때문에, crc는 에러디텍션에 아주 좋은 선택임

이더넷에서는 '신호를 보내는 타이밍'을 겹치지 않도록 함으로써 되도록 충돌이 일어나지 않게 한다. 이를 위해 CSMA/CD라는 엑세스 제어를 시행한다.

random access MAC protocol에 CSMA/CD(유선), CSMA/CA(무선) 있음

CSMA 에서 데이터의 충돌이 있는 이유?
데이터의 전파시간이 있기 때문이다. (PROPAGATION)

ip 주소

0개의 댓글