본문 바로가기
Computer Architecture

컴퓨터 시스템 개론 : 4장 : 네트워크와 인터넷

by 12312121 2024. 4. 27.

지난 시간엔 데이터 조작 SW인 운영체제에 대해 살펴봤고 이번 시간엔 PC 내부의 데이터 처리가 아닌 개별 PC들끼리 데이터 교환하는 네트워크와 인터넷에 대해서 중점적으로 살펴볼거야.

배울 순서는 아래와 같아 !


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜

 

< 3 > 사이버 보안

1. 사이버 보안

2. 해킹

3. 암호학


우선 이란 로컬 어리어 네트워크, 한마디로 근거리 통신망이다.

실제로 한 건물 내에서 근거리로만 사용하는 편이고, 또 라우터라는 중앙 지점으로 인터넷을 연결하는 구조를 띄고 있어.

 

그리고 세부 종류가 엄청 많은데 두가지씩 나뉘니까 잘 외울 수 있을 거야.

 

먼저 나누는 기준은 구성매체, 전송속도, 전송방법, 프로토콜 순이야.

먼저 맨 처음에는 유선이냐 무선이냐로 갈린다.

유선으로는 고속 랜일반랜으로 나뉜다. . 광섬유 사용여부로 갈린다.

  • 자유이용형
  • 토큰이용형
  • 광대역
  • 고속
  • 무선

그리고 고속랜부터 설명할게. FDDI와 DQDB로 나뉜다.

FDDI는 Fiber Distributed Data Interface.

그러니까 광섬유 분산 데이터 인터페이스 라는건데, 무슨 말이냐면 그냥 광섬유를 써서 데이터를 분산 시켜주는 인터페이스라는 거야. 이름 그대로 기능을 해.

DQDB도 광섬유를 쓰는데 특이사항은 이중 버스와 분산 큐를 써. 그래서 디스트리뷰티드 큐 듀얼 버스라는 이름을 가지지.

둘다 어떻게 생겼냐면 이름처럼 생겼어. FDDI는 데이터를 광섬유로 분산해주기 쉽게 링 형태를 띄고 있어.

그리고 DQDB는 이중 버스를 중심으로 분산 큐가 있어. 유전차나 쌍쌍바 같이 생겼지.


이제 드디어 일반 랜에 대해서 설명해볼게.

  • 자유이용형
  • 토큰이용형
  • 광대역
  • 고속
  • 무선

이건 좀 느리긴한데 어쨋든 일반랜에선 전송방법으로 광대역기저대역으로 나뉘어. 

 

기저대역기저대역을 쓰는 랜이야. 기저대역은 반송파를 위한 주파수 대역이야.

반송파는 전자기파로 신호를 전달하기위해 변조를 가한 전자기파야.

 

광대역 랜이 뭐냐면 하나의 전송매체에서 여러 데이터 채널을 운영하는 방식을 쓰는 랜이야.

그러니까 한번에 여러 데이터 채널을 쓸 수 있다는 장점이 있겠지.


  • 자유이용형
  • 토큰이용형
  • 광대역
  • 고속
  • 무선

그리고 아까 기저대역에 대해서 더 살펴볼게 프로토콜 종류가 두가지 더 나뉘거든.

우선 CSMA / CD는 Carrier Sense Mutiple Access / Collision Detection의 약자다.

뒤에 나온 충돌 감지를 잘 쓰는데, 일단 캐리어라는 네트워크 신호가 감지가 안되면 접근을 하는데 이때 복수의 접근이 나오기 쉬워 여러 PC가 접근한다든지 말야. 그럼 충돌이 나겠지? 그 충돌을 감지해서 충돌이 임의의 횟수까지 나오면 이제 그 랜에 접근을 포기해서 먼저 포기한 쪽이 늦게 사용하고 안포기한쪽이 쓰는거야 그래서 이름이 자유경쟁형이지.

아 그리고 캐리어라는 네트워크 신호는 반송파의 일종이야. 기저대역 랜이니까 당연하겠지?

 

그리고 토큰 이용형이라는 프로토콜도 있어.

 또 이게 토큰 버스와 토큰 링으로 또 나뉘어.

일단 그전에 토큰란 이름이 있는 이유는 여러 컴퓨터한테 토큰을 한번씩 주고 서로 돌아가면서 한번씩 토큰을 쓰게하는데 여기서 토큰의 기능은 네트워크 사용 권한이란 거다.

그리고 이거를 링형태로 전달할지 아니면 버스 형태로 전달하는지에 따라 버스인지 링인지가 갈린다.

사실 따지고보면 버스도 링이긴 하지만 어쨋든.

 

그리고 유선랜은 랜 표준 프로토콜인 이더넷으로 구성되어있어

이제까지 유선 랜 살펴봤고 이제 무선랜을 살펴볼건데 

무선랜의 표준은 와이파이야.

 

무선 랜에선 은폐단말기라는 문제가 발생해.

이게 뭐냐면 유선랜과 달리 무선랜은 멀어서 충돌하고있는지 바로 알 수 가 없단거야.

그래서 별도의 해결 방법이 필요해.

 

그래서 유선에서 쓰는 CSMA/CD와 유사한 CSMA/CA를 도입했어.

이거는 충돌 감지가 아니라 충돌 회피야.

 

일단 뭐 CD처럼 각 노드들 NIC의 버퍼에 보낼 프레임을 전송해.

그리고 이제 버스가 아니라 채널을 사용 중인지 감지를 해.

사용안하면 이제 CD랑 달리 사용안할때 일정 시간을 기다려. 1차 충돌 회피한다는 거야.

그리고 다시 또 랜덤한 시간으로 좀더 기다려. 이건 2차 충돌 회피야. 이 랜덤 시간을 타임 슬롯이라고 

이래도 사용안하면, 수신 측에서 ACK라는 수신 성공 신호를 보내.

사용중이면첨부터 다시! ACK는 Acknowledgement 그러니까 이제 내가 보내도 된다는 알고있다는거야.


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜

 


지금까지 LAN에 대해서 알아봤고, 이제 네트워크를 결합해서 확장하는 방법에 대해서 알아보겠다.

네트워크의 결합이 뭐냐면 기존의 네트워크들을 연결해서 네트워크 시스템을 확장하는 것을 말해.

 

결합 장치로 피트, 브릿지, 스위치, 라우터가 있어.

리피트는 신호 증폭 장치야.

브릿지는 메세지 전달 장치야. 이때 목적지 주소를 보고 어디로 보낼지 결정해.

스위치는 여러 연결점을 갖는 브릿지야.

 

라우터는 호환되지 않는 네트워크들을 연결 시켜주는 장치야.

(AP, Access Point은 무선 인터넷에 접속하기 위한 지점, 그 예로 리피터가 있다.)

또한, 목적지 주소에 따른 전달 방향이 담긴 Forwarding Table메세지 분배 방향을 결정한다.

 

이제 네트워크들을 결합했으니 통신을 해야겠지? 그리고 명령어 집합의 진행을 프로세스라고 하는데 이것들의 통신 방법을 알아 볼게.

자, 프로세스 간 통신, Interprocess communication은 한 네트워크 안의 서로 다른 컴퓨터 상에 실행되는 프로세스 간에 지정된 작업을 수행하기 위해 협력하는 방식이다.


< 1 > 네트워크
1. 랜
2. 프로토콜
3. 확장법
4. 주요 모델

< 2 > 인터넷
1. 인터넷 구성
2. 주소
3. 메세지 송수신법


네트워크는 여러가지 모델이 있어.

  • 클라이언트 / 서버 모델
  • P2P 모델
  • 클라우딩 컴퓨팅 모델 : IAAS, PAAS, SAAS

 

클라이언트 / 서버 모델 먼저 설명할게 클라이언트 프로세스는 서버 프로세스에게 뭔가 요청을 해. 그니까 그냥 자기가 원하는거 예를들어서 뭐 음식 주문 같은거. 그러면 서버 프로세스는 클라이언트 프로세스가 원하는걸 들어줘. 서버 프로세스의 예로는 프린트 서버, 웹 서버, 파일 서버, FTP 서버, DB 서버, 텔넷 서버 같은거지.

프린트 같은걸 원해서 프린터 서버에 프린트 요청을 줄 수 있곘지. 클라이언트와 서버의 구조는 아래 그림과 같아 그니까 여러 클라이언트 프로세스가 자기가 원하는걸 들고 있는 서버 프로세스에다가 요청을 딱 보내는 거지 !

그리고 언제 클라이언트가 요청을 줄지 모르기 때문에 서버는 5분 대기조마냥 항상 수행 준비 되있어야해.


  • 클라이언트 / 서버 모델
  • P2P 모델
  • 클라우딩 컴퓨팅 모델 : IAAS, PAAS, SAAS

그리고 또 클라이언트 / 서버 모델 말고 P2P 모델도 있는데

이건 아까처럼 수직적인 구조가 아니라 동등한 평등한 구조인데 각 프로세스는 필요할 때만 일시적으로 실행되고 말아. 24시간이 아니야. 예를들어 메신저나 대화형 게임이나, 음악 / 동영상 파일 공유 시스템 같은거지 P2P의 P는 peer야. peer가 뭔지 알아? 이거는 동료야. 동등한거지.

 그리고 2는 숫자 2가 아니라 to야 그니까 동료에서 동료로 라는거지.


  • 클라이언트 / 서버 모델
  • P2P 모델
  • 클라우딩 컴퓨팅 모델 : IAAS, PAAS, SAAS

이제 분산 시스템을 알아볼게.

분산시스템은 여러 사용자가 사용하기 쉽게 만드는 시스템이라 좋아. 시스템의 예로 클라우드 컴퓨팅이 있어. 이거는 네트워크 기술을 활용해서 IT 자원을 서비스로 제공하는 형태야. 하드웨어 같은거 말야. IT 자원의 임대지. CPU나 글카 그런거. 예로 AWS, 네이버 클라우드 구글 GCP, MS Azure등등으로 많아  


그리고 클라우드 컴퓨팅 모델은 발전된 과정이 있었어.

일단 뭐 맨첨엔 애플리케이션부터 네트워크까지 하드웨어든 데이터든 다 기업 소유였는데 네트워크나 스토리지나 서버나 가상화 같은걸 서비스로 제공해주기 시작했어. IAAS라고 불러

이걸 인프라 구조를 서비스로 제공한다는거지. . 인프라스트럭쳐 에즈 어 서비스의 약자야.

 

PAAS도 있는데 이거는 플랫폼으로서 제공한다는 거야. 운영체제랑 미들웨어랑 런타임을 제공해주는 거지.

미들웨어는 데이터 관리 SW야.

 

그리고 마지막으로 소프트웨어를 서비스로 제공하는 것도 있는데 이건 SAAS야. 소프트웨어 뿐만 아니라 데이터부터 서버나 운영체제 전부다 서비스를 해줘. MS 오피스 같은거야. 말그대로 다 해주지?


< 1 > 네트워크
1. 랜
2. 프로토콜
3. 확장법
4. 주요 모델

< 2 > 인터넷
1. 구성
2. 주소
3. 메세지 송수신법


지금까지 랜이랑 프로세스 간 통신에 관한 지식을 알아 봤는데, 이제 아주 거대한 네트워크인 인터넷에 대해서 알아볼게.

인터넷이란 전세계적으로 연결되어 있는 네트워크야.

내부 통신망이 규모가 엄청 큰거지.

 

그리고 인터넷 서비스 사업자, ISP, Internet Service Provider라는 것도 생겨났어.

인터넷으로 돈버는 기업인데. 인터넷 접속을 제공하고 돈받는거야.

얘네는 인터넷 접속 장비나 네트워크를 갖고 있지. KT나 SK브로드 밴드나 LG 유플러스 같은 애들이야.

 

인터넷은 뭐들로 이루어 지냐? 그냥 아까 말한 ISP들의 집합체야. 얘네들이 뭉치고 연결되고 해서 전세계의 인터넷이 되는거야.

 

그리고 ISP는 도메인이라고 부르기도 해. 도메인이 뭐냐면 인터넷 주소야. ISP를 인터넷 주소로 부르는 이유는 주소가 있어야 인터넷이 구성되니까.

 

그리고 인터넷 구성은 아래와 같아.

일단 단말 시스템은 단말기, 그러니까 폰이나 컴같은 거고 접속 ISP는 고객이고

계층 2 ISP는 회사고 계층 1은 국가야. 진짜 국가란게 아니라 국가간에 해저케이블 연결 같은걸로 국내 ISP사업자한테서 수수료를 받아. 계층 2 ISP는 일반 단말기로 접속하는 고객으로부터 돈을 받고 계층 1 ISP한테 돈을 내.

아그리고 접속 ISP는 계층 3 ISP라고 하기도 해.


< 1 > 네트워크
1. 랜
2. 프로토콜
3. 확장법
4. 주요 모델

< 2 > 인터넷
1. 구성
2. 주소
3. 메세지 송수신법


이제 인터넷 구성이 있으면 그 구성안의 주소도 있겠으니 주소를 알아볼게.

주소는 전세계적으로 IPv4 주소 체계를 채택하고 있는데 이건 전 세계적으로 관리되고 있는 유한한 자원이야. 43억개 밖에 없어.

 

이거의 구성은 네트워크 주소 + 호스트 주소야.

 

여기서 네트워크 주소란? 네트워크 식별을 위해서 인터넷주소자원 관리기관에서 부여한거야.

호스트 주소란? 네트워크 상의 개별 호스트 식별을 위해서 네트워크 관리자가 부여한거야.

네트워크 관리자는 시청이나 구청이야.


이제 표기법을 알아볼건데. 32비트 패턴을 8비트로 4세트로 나눈 후에 점 찍고10진수로 적어.

그니까 11111111은 255니까 11111111 11111111 11111111 11111111가 주소면 255.255.255.255가 주소가 돼.

그리고 또 IPv4 주소체계는 클래스가 5가지로 나뉘어. 이거는 주소에서 네트워크 영역과 호스트 영역을 나누기 위함이야.

일단 나누는 방식은 네트워크 영역이 정해진 주소의 범위를 갖고 그다음에 남는 걸 호스트가 갖는 방식이야.

근데 전부 다 가지진 않아.

 

일단 A부터 E까지의 방식이 있어

A는 네트워크가 0~127을 갖고 나머지 십진수 세쌍을 호스트가 가져

그러니까 주소 범위는 0.0.0.0부터 127.255.255.255까지 되는거지

 

B에서는 네트워크가 128.0부터 191.255까지 가지고 나머지 두쌍은 호스트가 가져 그러니까

128.0.0.0부터 191.255.255.255가 범위가 되는거지

 

그다음에 C는 네트워크 주소가 192.0.0부터 223.255.255까지 갖고 나머지 한쌍은 호스트가 가져

그러니까 범위가 192.0.0.0부터 223.255.255.255가 되는거지

 

이제 D와 E가 남았는데 얘네는 특이하게 네트워크 주소랑 호스트 주소가 아예 통합되어있어. 구분이 없어.

그래서 그냥 D는 224.0.0.0부터 239.255.255.255라고 외우면 돼.

그리고 E는 좀더 간단해 240.0.0.0부터 255.255.255.255까지야.

패턴을 찾자면 D랑 E의 앞자리 십진수는 둘다 16개씩 주소를 가져.

C는 12개를 갖고.

B는 64개를 가져.

A는 128개를 가져.

다시 나열을 하자면 128, 64, 32, 16, 16 이렇게 돼.

그리고 E랑 D는 구분이 없긴하지만 어쨋든 암기를 위해 네트워크 주소가 잡아먹는 십진수 세트의 개수를 세보자면

ABCDE는 1세트 2세트 3세트 4세트 4세트 이 순서야. 이제 비교적 외우기 쉬워졌지?

 

근데 왜 128. 64. 12. 16. 16개씩 가지느냐?

A는 주소가 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx야 그러니까 맨 앞자리 십진수 세트가 128개의 경우의수밖에 못가지지 B는 주소가 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx야 그러니까 맨 앞자리 십진수 세트가 64개의 경우의수밖에 못가지지

비트가 6개니까 2^6이고 이건 64잖아.

C는 주소가 110xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx야 그러니까 맨 앞자리 십진수 세트가 32개의 경우의수밖에 못가지지

A~C는 컴퓨터의 일대일 통신에서 써.

D는 주소가 1110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx야 그러니까 맨 앞자리 십진수 세트가 16개의 경우의수밖에 못가지지

D는 멀티캐스트, 그러니까 한번의 송신으로 여러 컴퓨터에 동시에 전송하는 거야.

 

E는 주소가 1111xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx야 그러니까 맨 앞자리 십진수 세트가 16개의 경우의수밖에 못가지지

E는 연구용 또는 예약용 주소야 !

 

그래서 외워야할 건 0, 10, 110, 1110, 1111이지.

 

근데 IPv4 주소가 43억개다 보니까 점점 남은 주소가 부족해지고 있어. 이제 1%밖에 안남았어.


그래서 새로 만든 주소가 IPv6야 이거는 IPv4 주소체계를 128(43^4억개) 크기로 확장한거야.

쓰는 방법은 128비트 패턴을 16비트씩 나누는 건데 이때 16진수와 콜론으로 구분을해 그러면 이렇게 8세트가 나와

 

이거를 16진수 4자리 세트 8개와 콜론 7개로 줄일 수 있어.

그럼 아래처럼 돼.

 

어떻게 해석하느냐면 네트워크 주소 64개, 호스트 주소 64개로 해석하면 돼.


도메인은 인터넷 주소를 문자로 바꾼건데 체계를 설명하자면 아래와 같아.

 

일단 최상위 도메인이란게 있는데 최상위 도메인은 국가코드최상위 도메인과 일반 최상위 도메인으로 나뉘어.

국가코드최상위 도메인은 .kr .jp .cn .한국같은게 있다. 그리고 일반최상위 도메인도 있어.

.net이나 .com .biz 같은 것들이야 네이버.com 같은데에서 잘 쓰지.

 

그리고 국가코드 최상위 도메인의 하위에는 2단계 도메인이 있어 .co나 .go나 .or 같은거지

 

samsung.co.kr 처럼 쓸 수 있어.


그리고 아까 말한 인터넷주소자원관리자는 ICANN이라고 국제인터넷주소관리기구야.

Internet Corporation for Assigned Names and Numbers의 약자야.

그러니까 인터넷 회사긴 한데 공식 이름과 숫자 그러니까 인터넷 주소 회사라는 거지.

여기서 전세계 인터넷주소자원을 관리하는데 편의를 위해 일단 지역 인터넷 등록소 Rocal Internet Register RIR에 주소를 분배를 해. 

그리고 RIR로는 대륙별로 있어 아프리카에는 AfriNIC

유럽에는 RIPENCC

아시아에는 APNIC

북아메리카에는 ARIN

남아메리카에는 LACNIC가 있어

 

그리고 아시아 RIR 산하에는 아시아 국가별로 또 나뉘어

CNNIC 중국

한국은 KISA 일본은 JPNIC야

 

LIRISP NIR의 중개자야.

LIR은 Local internet register라는 의미고

NIR은 national internet register라는 의미야

 

아그리고 ISP로부터 주소를 안받고 바로 국가 NIR로부터 받는 독립사용자도 있기는해.


이제 받은 도메인 주소를 쓰는 법을 배우겠다.

그걸 위해 DNS를 쓴다 도메인 네임 시스템이라는 거다.

DNS는 인터넷 상에서 메세지를 전송할때 도메인 주소를 IP 주소로 변환해주는 것이다.

다른 말로는 네임서버들의 디렉토리 시스템이라고 보면 된다.

네임 서버는 도메인 그러니까 도메인들의 디렉토리 시스템 그러니까 도메인 이름 저장 시스템, 도메임 네임 시스템 DNS !

 

DNS로 도메인을 IP로 바꿀때는 여러 DNS를 거친다 그냥 각 단어를 다한다.

PC → 루트 DNS → com DNS → naver.com → PC

근데 바로바로 여러 DNS로 가는게 아니라 항상 로컬 DNS를 커진다. 그러니까

PC → 로컬 DNS  루트 DNS → 로컬 DNS → com DNS → 로컬 DNS  naver.com → 로컬 DNS  PC

그림으로는 이렇다.

 


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜


프로토콜은 네트워크 통신 양식 및 규칙이다.

주소를 알아도 어떻게 보낼지 서로 정해야 해석이 가능해서 필요하다.

일단 물리적 측면의 프로토콜은 전송 매체나 전송 신호나 단자나 회선 규격이다.

논리적 측면의 프로토콜은 프레임 구성이나 자료 전송 절차나 프레임 내용의 뜻이나 기능이야.

근데 프로토콜과 별개로 구현은 독립적이야. 그냥 알아서 구현해야한다는 거지. 제품같은걸말야. 제품은 독립적으로 알아서 구현해야지. 국제 표준 프로토콜은 OSI고 업계 표준은 TCP/IP야.

 

OSI는 4개의 계층으로 나뉜다. LLC와 MAC다.

LLC는 Data Link Layer에서 상위부분을 담당하고 MAC는 하위부분을 담당한다.

LLC는 Logical Link Control이고 MAC는 Media Access Control의 약자다.

데이터 링크 계층이 뭐냐면 아까 국제 프로토콜 표준 OSI에는 계층이 있는데 여기서 두번째 계층이야 이건 데이터 전송과 데이터 절차를 제어하는 기능을 해. 첫번째 계층은 뭐냐고? 이건 피지컬 레이어라고 하는데, 오류를 감지하고 수정하는 역할이야. 그리고 MAC는 1계층과 연결되고 LLC는 3계층인 네트워크와 연결돼.

그리고 LLC는 1계층처럼 에러를 제어하는데 추가로 다른 기능도 있어. 로지컬 링크라는 이름 답게 논리적인 걸 해야곘지?

흐름제어를 하고 데어 링크를 유지관리하고 다중화를 해. 그리고 MAC와 독립성을 유지하지.

 

그리고 MAC는 무슨 기능을 하나면 엑세스라는 이름 답게 접속을 규제해. 어떤 것의 접속을 규제하냐면

공유하는 매체로의 접속이야. 왜냐? 프로토콜이니까 공유를 많이할테니 말야. 규제만 하느냐? 그건 또 아니ㄴ야

일단 공유하는 매체로의 접속을 규제하면서 모든 노드에 프레임을 전송할 기회를 주기도 하지.

프레임은 데이터 단위고 노드는 통신장치야. 아참고로 CSMA/CD가 MAC의 일종이야 둘다 액세스라는 단어가 있지?

맞아 같아서 그래.

 

MAC를 아까 간략하게 설명했는데, 이번엔 정확하고 자세하게 설명해볼게.

일단 맨첨에 보낼 프레임을 NIC의 버퍼에 저장해. NIC는 네트워크 인터페이스 카드라고 CDMA가 쓰는 프로토콜이야.

그담에 버스를 사용중인지 확인하고, 또 이걸 캐리어 센스라고해. 그리고 사용중이면 랜덤한 시간 후에 다시 검사를 해.

안사용 중이면 프레임을 버스로 일단 전송하는데, 전송하고나서 충돌이 발생했는지 검사를 해. 발생했으면 충돌 신호를 버스로 보내. 안했으면 괜찮고. 했다면 버스 검사 단계부터 다시 시작해.

이제 도메인 내에서 메세지를 전송하는 방법에 대해 알아볼거야.

이건 총 세가지가 있어.

유니캐스트, 멀티캐스트, 애니캐스트

 

유니캐스트는 1:1 송신, 그러니까 인터넷상에서 하나의 송신자가 하나의 수신자에게 메세지를 전송하는 방식이야.

IPv4의 클래스 A, B, C를 활용해

근데 N-유니캐스트는 1:N 송신, 그러니까 하나의 송신자가 다수의 수신자에게 메세지를 전송하는 방식이야.

 

멀티캐스트는 그냥 N-유니캐스트라고 보면 돼.

IPv4 클래스 D주소를 이용하고, 멀티캐스트 그룹 주소로 해당 그룹에 속한 다수의 수신자에게 메세지를 전송하는 방식이야.

IPTV, 사내방송, 증권 시세 전송 같이 단방향으로 전달을 해

 

그다음에 애니캐스트가 있어.

anycast 그러니까

애니캐스트는 그냥 가장 가깝거나 효율적인 서비스가 가능한 호스트 아무나와 통신하는 방식이야.

가장 가까운 DNS 서버를 찾을 때도 써.

OSI 7계층의 네트워크 계층이 자주써.

 

아 그리고 미안한데 세가지 말고 한가지 더 있어.

브로드캐스트야. 멀티 캐스트의 극단적인 버전인데.

넓은 캐스트 그러니까 하나의 송신자가 동일 네트워크에 속한 모든 호스트와 통신하는 방식이야

로컬 네트워크 내에서 모든 호스트에게 메세지를 전송해야할때 써.

확성기 같은 느낌이지. 그림으로 표현하자면 이래.


 

이제 보내는 방법은 설명했고 보낸걸 해석하는 방법에 대해서 설명할게 OSI 참조 모델 그러니까 이전에 설명한 국제표준 통신규약을 기준으로 할게. OSI에서 주의할게 OSI가 아니라 OSI 참조 모델이야 그러니까 오픈 시스템 인털커넥션 리퍼런스 모델이야. 개방 시스템 내부통신 참조 모델이라는 뜻이야. 아 근데 OSI 7 계층이라고 하기도 해.

 

내부는 7단계로 이루어져있고 이것을 보낼때랑 받을때 둘다 거쳐야돼. 그림으로  표현하자면 아래와 같아.

이 7단계는 응용, 표현, 세션, 전송, 네트워크, 데이터 링크, 물리라는 계층들로 나뉜다. 

 

일단 응용 계층은 말그대로 응용프로그램나 사용자와 통신한다

 

그다음 표현 계층은 응용이 보낸 데이터를 조작한다. 기계가 알아들을수있게 표현한다고해서 표현 계층이고 할 수도 있곘다. 할일은 데이터의 인코딩 디코딩 압축 압축해제 암호화 복호화 같은거다.

 

세션 계층은 통신하는 프로세스간의 대화를 제어하는 거다. 그러니까 연결 유지나 종료를 결정한다.

줄여서 통신세션을 조작하는 거다. 통신 세션이라는 단위로 통신을 설정 및 유지 및 종료를한다.

 

전송 계층은 이제 데이터 조작이랑 통신까지 마쳤으니 이제 말그대로 데이터를 전송.. 을 하는건 아니고 데이터를 잘 전송할수있게 데이터를 여러 데이터 세션으로 분할해 그리고 송신할때는 분할하고 수신할때는 재조립하고 또  송신과정에서 생긴 오류를 검출하고 복구까지 진행한다.

 

그리고 네트워크라는 것도 있어 이건 이제 4번째 단계인데, 아 지금까지 1에서 3번째 단계까지 설명을 했어.

이제 네트워크 단계로 데이터를 조작하고 통신세션 만들고 전송까지 하니까 이제 이 전송들을 관리해줄필요가 있으니

네트워크를 통신해야해 그래서 네트워크 계층이 있고 네트워크는 말그대로 네트워크간의 통신을 관리해 주소도 관리해 네트워크끼린 주소가 있어야 통신이 가능하니까

 

그리고 이제 데이터 인코딩 하고 통신 세션만들고 데이터 세션만들고 네트워크까지 통과헀으니 진짜 전송이란걸 해야겠지? 그래 그래서 이제 데이터 링크 계층에선 전송을 담당해.

 

그리고 이게 전송을 위해서 물리장치의 주소까지 식별을 해. 이제 전송까지 했으면 어떻게해? 받아야지 어 그래서 물리 계층은 받은 사용자 데이터를 물리적으로 소통이 가능한 통신신호 그러니까 비트 신호로 바꾸고 이제 위쪽 계층으로 다시 올려 어디? 저기 데이터 링크로 오류 복구까진 안하고 그건 상위 계층 저기 세션 단계에서 알아서 해줘가아니라 전송 계층에서 전송을 위해 데이터를 데이터세션화 할때 재조립할때 복구를해. 어쩃든 물리 계층이 받고 전송 계층으로 올리고 네트워크 계층으로 올리고 전송 계층으로 올리고 세션 계층으로 올리고 표현 계층으로 올리고 마지막 응용계층까지 올리고 이러면 끝이야 사용자까지 보내야 끝이라고 할 수도 있겠고.


 

근데 통신 표준 규격이 다르다고 완전히 다른건 아니고 공통점이 있어.

 

일단 전송계층은 다 가지고 있어.

그리고 인터넷 프로토콜 스위트는 전송계층 밑으로는 OSI 7계층과 똑같아 전송계층 위로는 다 응용계층이고

좀 더 단순하다는 거지.

DoD 모델은 인터넷 프로토콜 스위트 모델의 네트워크 계층 밑으로만 조금 다른 형태야.

데이터 링크계층과 물리 계층이 네트워크 인터페이스 계층으로 통합됐어.

아그리고 DoD가 뭐냐면 미국 방위부 그러니까 Department of Defense의 약자야. TCP/IP 프로토콜 4계층이라고도 불러.

이거는 그냥 네트워크를 단순화 시켜서 보여주는 걸 중심으로 한 모델이야.

 

아 그리고 꼭 모든 계층을 거쳐야만 통신을 할 수 있는건 아니고 아래의 그림처럼 특정 장치를 거쳐서 바로 

통신할 수도 있어.

이걸 수평적 통신이라고 하는데, 응용이랑 전송 계층간의 통신은 게이트웨이로 바로 이뤄지고

네트워크계층 끼리는 라우터랑 3계층 스위치로 이뤄져

링크 계층 끼리의 통신은 브리지랑 2계층 스위치랑 스위칭 허브로 이뤄져

브리지 기억하지? 메세지 전달장치인 브리지 말야 ! 스위치는 세개 이상의 연결점을 같는 브리지고 !

리피터는 증폭기!

물리계층에서 리피터랑 허브로 통신을 한다.

 

이제 이전에 말한 프로토콜에 대해서 설명을 해 볼게 !

 

근데 모아서 설명하면 듣기도 편하고 하니까 프로토콜의 대표주자인 TCP/IP 프로토콜 모음에 대해서 설명할게

그리고 아까 말한 DoD 모델은 4계층 구조라고도 하는데 4계층 구조가 간단하니까 거기에서 계층별로 사용하는 프로토콜에 대해서 설명할게.

 

 

NI 그러니까 네트워크 인터페이스 계층에선 이더넷을 써.

네트워크 계층에서는 IP

전송 계층에서는 TCP, UDP

응용계층에서는 HTTP, SMTP, POP3, FTP, TELNET, SSH를 써

 

전송계층에서는 TCP를 쓰고 네트워크 계층에서는 IP를 써서 TCP/IP 프로토콜 모음의 이름을 그렇게 지은거 같아

그리고 전송계층에선 TCP 프로토콜을 쓰는데 이때 식별하는 주소는 포트 번호야 그리고 네트워크 계층 그러니까 IP 프로토콜에서는 식별주소로 IP 주소 다른 말로는 논리 주소를 식별 주소로 사용해

그리고 NI 네트워크 인터페이스 계층에서는 물리주소 다른말로 MAC 주소를 식별 주소로 사용

 

그리고 TCP / IP에 의한 데이터 전송을 할때에는 데이트를 헤더화 해. 그리고 헤더화 하는 이유는 아래 계층이 내용을 확인할 수 없게 하기 위함이야 그리고 송신하고나서 수신했을때 다시 역캡슐화를 해서 데이터를 해석할 수 있어.

 

수평적 통신시의 데이터 단위는 별도로 이름이 있어

그리고 응용계층에서 응용계층으소 수평적 통신을 할때는 메세지가 데이터 단위야

전송계층에서는 세그먼트가 단위고

네트워크 계층에서는 데이터 그램

마지막으로 NI 네트워크 인터페이스 계층에서는 프레임이 계층이야.

그리고 각 계층의 특성을 계층을 지날때마다 헤더로 추가를 해서 아래 계층으로 내려갈수록 데이터의 양이 증가해.

그리고 자신의 계층에서는 헤더였지만 아래계층에서는 그걸 나중에 역 캡슐화로 해석할 수 있기 때문에 데이터로 간주해 아래 그림을 보면 훨씬더 와닿을 거야.

다른그림으로 표현하면 이래 좀더 보기 간편해졌지? 그리고 데이터그램은 패킷이라는 다른이름을 가지고 있는 점 참고해 !

 

 

이제 이전에 클라이언트 / 서버 모델의 프로토콜로 통신하는 법을 배우겠다.

그런데 그 전에 소켓을 알아야한다.

소켓은 네트워크를 경유하여 프로세스 간의 통신을 할때 종착지이자 두 호스트간의 통신 기능을 해주는 것이다.

전송계층과 응용계층 사이의 인터페이스 역할을 한다.

 

함수 호출 순서는 아래와 같다.

서버 측 동작:

1. socket() :서버 소켓을 생성한다. 
2. bind(): 소켓에 IP 주소와 포트 번호 할당한다
3. listen(): 클라이언트 연결 요청대기한다
4. accept(): 클라이언트 연결을 수락
5. send()/recv(): 데이터 송수신
6. close(): 소켓 닫기

 

클라이언트 측 동작:
1. socket(): 클라이언트 소켓 생성
2. connect(): 서버에 연결 요청
3. send()/recv(): 데이터 송수신
4. close(): 소켓 닫기

 


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜

 

< 3 > 사이버 보안

1. 사이버 보안

2. 해킹


지금까지 배운 네트워크에서 위험한 것이 존재한다.

바로 해킹이다.

그래서 필요한 것이 사이버 보안이다.

사이버 보안이란, 네트워크, 컴퓨터, 데이터를 악의적인 공격으로부터 보호하는 활동이다.

 

사이버 보안 종류4가지다.

네트워크 보안, 애플리케이션 보안, 정보 보안, 운영 보안.

 

네트워크 보안이란, 승인되지 않는 상태에서 네트워크에 침입하는 것을 막거나 방지하는 활동이다.

애플리케이션 보안이란, 앱 코드의 취약점을 찾아서 안전하게 수정하는 활동이다.

정보 보안이란, 저장 또는 전송 도중에 승인되지 않은 접근이나 조작으로부터 안전하게 보호하는 활동이다.

운영보안이란, 악의적 행위자가 분석하거나 다른 데이터와 결합하기 위해 필요한 큰 그림이 드러날 수 있는 퍼블릭 데이터터를 평가/보호하는 활동이다.


우수한 사이버보안을 위해 사이버 보안 프레임워크를 도입했다.

 

사이버 보안 프레임워크는 총 5단계로 구분된다.

파악, 보호, 탐지, 대응, 복구

 

파악(identifying)이란, 조직 내부의 취약한 자산을 파악하는 것이다.

보호(protecting)란, 자산과 데이터 보호 및 필수 유지 활동을 말한다.

탐지(detecting)란, 침해나 침입을 감지하는 것이다.

대응(responding)이란, 침해에 대응하는 것이다.

복구(recovering)란, 공격으로 인해 발생한 시스템, 데이터, 재무상태, 평판의 피해를 복구하는 것이다

 

보호에는 세가지를 설치해서 대비할 수 있다.

방화벽, 프록시 서버, 안티바이러스 SW.

 

방화벽은 인터넷 접속 시, 외부 네트워크로부터의 접근을 차단하는 것이다.

 

프록시 서버는 웹 서버에 직접 접속하지 않고 프록시 서버에 접속한 뒤에 프록시 서버를 통해서 간접적으로 웹 서버에

접속하는 것이다.


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜

 

< 3 > 사이버 보안

1. 사이버 보안

2. 해킹


해킹의 종류로는 6가지가 있다.

첫째, 악성코드 (malware)

둘째, 스니핑 (sniffing)

셋째, 스푸핑 (spoofing)

넷째, 피싱 (phishing)

다섯째, 서비스 거부 공격 (Denial of Service attack, Dos,Distributed DoS, DDoS) 

여섯째, 랜섬웨어 (ransomeware)


< 1 > 네트워크
1. 랜

2. 확장장치

3. 주요 모델

 

< 2 > 인터넷
1. 구성
2. 주소
3. 프로토콜

 

< 3 > 사이버 보안

1. 사이버 보안

2. 해킹

3. 암호학


해킹을 대비하기 위한 암호학을 배우겠다.

일단 전통적인 해킹 대책은 문제가 있다.

비밀번호로 접근을 통제하는 것인데, 공격으로 비밀번호가 노출될 수 있다.

특히, 네트워크는 노출이 잘되는 공간이기에 데이터를 네트워크 상에 전송할 때는 보호 수단이 되지 못한다.

 

그것의 대비책이 암호학이다.

암호학이란 공격자가 존재하는 상황에서도 안전하게 정보를 송수신하는 기술에 관한 학문이다.

암호된 메세지는 노출되어도 정보가 유출되지 않는다.

 

암호화 방법의 종류로는 대표적으로 3가지가 있다.

  • 대칭키 암호화
  • 공개키 암호화
  • HTTPS

대칭키 암호화 (symmetric encryption)란 암호화와 복호화 시, 키가 동일한 암호화 방식이다. 암호 알고리즘은 공개되며, 수신자와 송신자는 비밀키를 안전하게 공유해야 한다.

암호 알고리즘으로 데이터를 암호화 하는데 비밀키에 따라 암호화 결과가 달라진다. 따라서 송수신자는 동일한 비밀키를 가지고 있어야 한다.

 

공개키 암호화 (public-key encryption)란 암호화 및 복호화 시에 쓰는 키가 서로 다른 암호화 방식이다.

둘 중 하나만 공개로 하고 나머지는 비밀로 한다. 

 

수신자가 암호화 키를 공개로 하고 수신자의 복호화 키를 비밀로 하는 경우 비밀로 수신자만 송신 데이터를 알 수 있는 공인인증서 같은 경우다.

 

또한, 특수하게 두명이 공개키/개인키 쌍을 생성하는 경우가 있는데

이는, 수신예정자가 인증기관을 (CA, Certifiaction, Authority) 거쳐서 메세지를 자신에게 전달하도록 하는 경우다.

인증기관은 디지털 인증서를 발급할 수 있는 권한을 받고 사용자의 요청에따라 인증서를 제공하는 기관이다.

두명의 공개키로 암호화를 하도록해서 보안을 높인다.

다음의 과정을 거친다.

1. 수신예정자가 암호화 공개키, 복호화 비밀키 생성

2. 인증기관에게 암호화 공개키를 등록.

3. 인증기관은 수신예정자의 공개키와 인증기관의 비밀키로 인증서를 작성. 이때 인증서 안의 내용은, 수신예정자의 공개키와 수신예정자의 정보이다.

4. 인증기관은 송신자에게 인증서와 자신의 공개키를 보낸다.

5. 송신자는 인증기관의 공개키로 인증서를 복호화해서 인증서의 내용을 보고, 수신예정자의 공개키로 암호화 한뒤에 수신자에게 결국 보내는데에 성공한다.

6. 수신자는 자신의 비밀키로 자신에게 보낸 메세지를 복호화 후에 확인한다.

 

송신자가 암호화 키를 비밀로 하고 복호화 키를 공개로 하는 경우는 누구나 다 읽을 수 있지만 송신자의 신분을 확실히 할 수 있는 전자서명 같은 경우다. TLS에서 쓰는 방식이다.

 

TLS, Transport Layer security 프로토콜은 위와 같은 방식으로 진행한다.

여기다가 메세지 인증 방식까지 쓴다.

메세지 인증 방식으로는 일방향 해시 함수를 쓴다.


암호화 방법의 종류 중 3번째는 HTTPS다.

  • 대칭키 암호화
  • 공개키 암호화
  • HTTPS

 

HTTPS, HTTP Secure은 그냥 웹 브라우저와 웹서버가 통신할때 TLS(=SSL, TLS의 과거이름)로 암호화하는 것이다.

댓글