'IT/Network'에 해당되는 글 4건

TCP/IP

IT/Network 2017. 3. 23. 23:33

 

TCP/IP


이번 첫 연재의 내용은 TCP/IP에 대해 알아보는 것이다. 

컴퓨터 통신에 관심이 있는 사람이라면 매우 자주 들어보았을 단어이다. 

이번 기회에 확실히 알고 넘어 가도록 하자.



TCP/IP, OSI 7 계층은 컴퓨터 네트워크에 대해 조금이라도 관심을  가지고 있

는   사람이라면  아마도   한번쯤  들어본   단어일  것이다.   OSI  7계층이 

ISO(International Standard Organization)에  의해 만들어진 것이고  TCP/IP는 

유닉스에서 쓰이는 현재 인터넷의 네트워크 프로토콜이라는 사실도 알  사람은 

이미 다 아는 사실이다. 

자 그럼 여기서 쉬운 퀴즈를 하나  내겠다. OSI와 TCP/IP 중 어느 것이  먼저 

생겼을까? 정답은 TCP/IP이다. 흔히  표준이란 것이 시장의  지배적인 회사나 

단체의 상품이 나오게 되면 그때서  그것을 표준으로 하는 경우가  대부분이고 

OSI의 경우도 마찬가지이다. 최초 미국  대학사이의 정보 교환을 목적으로  한 

ARPANET에서 ARPA   인터넷으로 발전하여  전세계적으로  그 프로토콜인 

TCP/IP가 쓰이게 되자 ISO에서  이를 기반으로 좀 더  세분화하여 만든 것이 

OSI 7계층인 것이다. TCP/IP는 4계층인 반면  OSI는 7계층인 이유가 여기 있

는 것이다.

이제 유닉스의 최대 장점이자 아직도  다른 시스템에서 넘보지 못하는  아성을 

구축하고 있는 유닉스 네트워크의 세계로 들어가  보기로 하자. 아래의 그림은 

TCP/IP와 관련된 유닉스의 프로토콜과 그 응용을 보인 것이다. 전체의 파악을 

위해 항상 염두해 두기 바란다.


컴퓨터 네트워크 용어

네트워크 분야에서 용어의 정립은  매우 중요하다. 이제부터  설명하는 용어는 

앞으로의 글을 이해하는데 가장 필수적이므로 확실히 이해하고 지나가기  바란

다. 


1. 네트워크

약간씩 차이는 있을 수 있으나 독립된 컴퓨터들이 상호 연결된 컴퓨터들의  집

합을 의미하는 것으로 생각하면 될 것이다. 단 여기서 마스터, 슬래이브 관계의 

컴퓨터 연결은 제외한다. 

분산 시스템과의 차이는 분산 시스템이 모든 사용자에게 시스템 자체가 하나인 

것처럼 보이게 하는 즉, 자동으로 일을 분산 처리하는 반면 네트워크에서는 사

용자가 작업을 명시적으로 각 기계에 지정하여  수행한다는 것이다. 분산 시스

템은 매우 특별한 소프트웨어를 가진 특별한  형태의 네트워크인 것이다. 여기

서 특별한 소프트웨어란 스스로 일을 처리하여 사용자에게는 여러 컴퓨터가 마

치 하나인 것처럼 보이게 하는 기능을 가진 소프트웨어를 일컫는다.


2. 인터넷(인터넷워크)

요즘 매우 흔히 들을 수  있는 단어이다. 그러나 이 말의  정확한 의미를 아는 

사람은 그리 많지 않을 것이다. 인터넷이란 서로 다른 네트워크에 있는 컴퓨터

사이의 통신을 위한 두개 이상의 서로 다른 네트워크 연결을 의미한다.

인터넷의 목적은 물리적으로 다른 네트워크의 성질을 감추고 하나의 잘 구성된 

단위 네트워크처럼 동작하도록 하는데 있다. 

두개의 서로 다른 물리적 네트워크를 연결하는 한 방법은 두 네트워크를  붙이

는 게이트웨이를 사용하는 것이다. 때때로 라우터(router)라고도 한다.


3. 메시지, 프레임, 패킷

메시지란 의미를 지니는 데이터의 단위인 반면 다른 것들은 의미를 지니지  않

는다.

프레임은 저 수준의 네트워크 하드웨어를 언급할 때 쓰이는 패킷의 다른  명칭

이며 패킷은 각각 헤더와 데이터로 구성되어 네트워크에서 전송되는 데이터 형

태이다.

 

4. 게이트웨이, repeater, bridge

3개 모두 두 네트워크를 연결하는데 쓰이는 것들이지만 다른 점은 연결이 되는 

위치이다. 

repeater는 물리 층에서 단순히 전기적 신호를 복사하며 bridge는 데이터  링크 

층에서 프레임을 다른 네트워크로 복사한다. 그리고 라우터는 네트워크 층에서 

경로를 설정하여 패킷을 전송한다.

게이트웨이는 2개 이상의 네트워크를 상호 연결하는데 쓰이는 개체를 지칭하는 

포괄적 용어이다.


참고:TCP/IP에서의 게이트웨이는 네트워크 층의 라우터를 지칭한다.


 때때로 게이트웨이란 용어는 네트워크층 위의 각 층에서의 특정 대화를  수행

하는 소프트웨어를 나타내기도 한다. 그 예로  메일 게이트웨이는 전자 메일을 

다른 형태로 변경한다.

repeater는 보통 하드웨어 장치이며 bridge와 라우터는 하드웨어 혹은 소프트웨

어로 구현될 수 있다. 라우터(게이트웨이)는  보통 위의 기능을 수행하는 전용 

기계이다.

호스트가 하나 이상의 네트워크 인터페이스를 가지는 경우 multihomed 되었다

고 한다.


5. Fragmentation과 Reassembly

대부분의 네트워크 층은 데이터 링크 층의  특성에 따라 그들이 다룰 수  있는 

최대 패킷 크기를 가진다. 이것이 MT U(Maximum  Transmission Unit) 인데 

간혹 전체적인 의미로도 사용된다.

이서네트의 경우 최대 1500바이트를 넘지 못하며 토큰 링의 경우는 4464바이트

를 넘지 못한다.

이러한 MTU로 인해  혹은 그  외의 이유로  생긴 것이  Fra gmentation인데 

Fragmentation이란 데이터 스트림을 더 작은 조각으로 나누는 것이다. 어떤 네

트워크에서는 Segmen tation이란  단어를 쓰기도 한다.  fragmentation의 역은 

reas sembly이다. TCP/IP의 경우 IP층에서 이루어진다.


6. 라우팅(routing)

통신 네트워크는 2개의 기본 형태를 가진다.


(1) circuit-switched : 공중전화 시스템이 그 대표적 예로 일단 

연결이 설정된 후에 비로소 통신하는 방식이다.

(2) packet-switched : 인터넷이 한 예이다. 전송할 정보들을 작

은 조각(패킷)으로 나누어 통신 선로를 서로 공유하며 보내는 방

식이다.


 패킷이 갈 수 있는 각각의 길을 route라고 한다.

 이 경로 결정은 네트워크 층에서 이루어지는데 실제 패킷이 전달되는  시간은 

여러 상황에 따라 시시각각 변하므로 예측하기 매우 힘들다.


7. Mutiplexing과 Demultiproxing

multiplexing이란 여러 개를 하나로 연결하는 것을 의미한다.  네트워크 층에서

는 여러 개를 하나로 연결하는 것을 의미하는데 네트워크 층에서는 하나  이상

의 사용자 프로세스가 동시에 여러 규약을 사용 할 수 있는것인데 주어진 규약

이 데이터를 IP층에서 내려보낼 때 보내는 프로세스가 어느 규약에서 나온  것

인지를 알리는 것이다. 예를 들면 어떤 한 사용자 프로세스가 TCP와 UDP  프

로토콜을 모두 사용하는 경우가 될 것이다. 반대로  UDP가 IP층에서 데이터를 

받는 경우   데이터를 규약을   통해 받아야  할  프로세스에게  알리는 것이 

Demultiplexing(하나에서 여러 개로)이다. 이것을 위해 UDP/TCP는 사용자 프

로세스를 구분하기 위해 포트 번호를 가진다.


8. 포트(Port)

IP 주소는 하나의 시스템을 구분하고 포트는 특정 서비스나 프로세스를 구분한

다(TCP/UDP). 포트는 특정 메일박스 프로토콜을  지정하는 IP 주소를 보조하

는 2바이트 숫자이다.

9. Broadcast, Mutilcast

unicast 메시지는   특정 호스트로  데이터를  전송할 때   쓰이는 메시지이며 

broadcast 메시지는   네트워크의 모든   호스트로 데이터를   보낸다. 그리고 

multicast 메시지는 네트워크의 특정 그룹의 호스트로 데이터를 보낸다.

broadcast의 경우 다른 네트워크로 forwarding이  되지 않는다. 또한 이서네트

의 경우 broadcast일 때 특정 주소 비트가 1로 세트된다.


10. nesting(encapsulation)

각 프로토콜의 패킷이 다음 프로토콜에  의해 발생되는 패킷의 데이터  부분이 

되는 것.


11. Modes of Service

OSI의 어떤 층 중 2개의 peer entity사이에서  제공되는 통신 서비스의 종류를 

기술하는데는 여러 파라미터가 있다. 여기서는 transport 층이  응용 층에 제공

하는 서비스에 초점을 두고 설명한다.


(1) connection-oriented (virtual circuit)와 connectionless

(2) sequencing

(3) error control

(4) flow control

(5) byte stream 혹은 message

(6) full-duplex 혹은 half-duplex


connection-oriented 서비스는 통신 시작 전에 응용 프로그램 사이에  논리적인 

연결이 되어 있어야 한다. 이것을 가상 회선이라 한다.

응용 프로그램 입장에서는 전용선을 가지는 것과  같은 착각을 일으키게 한다. 

보통 다음의 3단계를 가진다.


(1) connection establishment

(2) Data transfer

(3) connection termination


connectionless 서비스(Datagram)는 데이터그램(datagram)이라  불리는 메시지

를 전송하는데 각각은 독립적이므로 전송을  위한 모든 정보를 가지고  있어야 

한다. TCP/IP의 경우 TCP는  connection-oriented 서비스를 제공하며  UDP는 

connectionless 서비스를 제공한다.

ISO/OSI 네트워크 모델

OSI(Open System Interconnection)란 여러 프로토콜들의  국제적 표준화를 위

해 ISO가 만든 개방형 시스템을 연결하는 모델이다.

OSI 모델은 그 자체가  네트워크 아키텍처는 아니다.  왜냐하면 OSI모델이 각 

층에서 사용될 정확한 서비스나  프로토콜을 지정하고 있지는  않기 때문이다. 

OSI는 단지 각 층이 무엇을 해야 할지만을 말하고 있다. OSI 모델은 7개의 계

층으로 구성된다.


1. 물리 층(Physical layer) 

물리 층은 통신 채널을 통한 순수 데이터(raw bit)들의 전송과 관련된다.

디자인 이슈는 한 쪽에서 보낸 1비트를 다른 한쪽에서 어떻게 하면 그대로 전

송 받을 수 있을지를 확실하게 할 수 있는가 하는 점이다.

전형적인 문제로는 1(0)비트를 어떻게 나타낼 것인가, 전송의 방향은 어떻게 할 

것인가, 최초 연결의 설정은 어떻게 할 것인가 등이다. 이러한 물리 층의  디자

인은 전기공학의 측면에서 생각될 수 있는 것이다.

 

2. 데이터 링크 층(Data Link layer)

데이터 링크 층의 주 업무는 순수 데이터 전송 설비를 네트워크 층에서 보았을 

때 에러가 없어 보이는 전송 라인으로 변환시켜 주는 것이다. 즉, 송신자는  데

이터를 데이터 프레임이라는 작은 조각으로 나누어 순차적으로 전송하고  수신

자에 의해 되돌아오는 acknoledgement 프레임을 처리하여 에러에 대한 처리를 

해 준다. 이런 프레임의 양쪽 끝에는 프레임의 경계를 알기 위해 특정 비트 패

턴을 붙인다.

프레임의 손상,  손실,  중복에 관해 처리하는 것도 담당한다.


3. 네트워크 층(Network layer)

네트워크 층은 서브넷(subnet)의 동작을 제어하는 것과 관련된다.

주요 디자인 이슈는 어떻게 패킷이 소스에서 목적지로 경로가 설정될지를 결정

하는 것이다. 

라우트는 정적 테이블을 이용하여 터미널 세션과 같은 각 대화의 시작점에  결

정될 수 있다. 또는 현재의  네트워크 부하를 감안하여 동적으로  결정될 수도 

있다.

네트워크 포화(congestion)의 제어도 이 네트워크 층이 맡는다.

heterogenous 네트워크(이형 네트워크 -  서로 다른 구조의  네트워크)가 서로 

연결될 때 발생하는 여러 문제들, 즉  허용 패킷의 크기 문제나 어드레싱(이름 

부여) 차이 문제들의 해결도 담당한다.

Broadcast 네트워크에서는 라우팅 문제가 간단하므로 네트워크 층이 매우 얇게 

되거나 아예 없는 경우가 많다.


4. 트랜스포트 층(Transport layer)

기본 기능은 세션 층에서 데이터를 받아 필요하면 더 작은 부분으로 나누고 이

것을 네트워크 층으로 전송한 후 각 조각들이 모두 목적지로 바르게  도착했는

지를 확인하는 것이다. 덧붙여 세션 층을  하드웨어의 변화에 의한 변경으로부

터 분리한다.

일반적인 조건에서 트랜스포트 층은 세션  층이 요구하는 각 트랜스포트  층에 

대해 구별되는 네트워크 연결을 생성한다. 만약  트랜스포트 층이 고효율이 필

요한 경우 네트워크 연결사이에서 데이터를 분할하여 다중 네트워크 연결을 생

성한다. 반면 네트워크 연결의 유지비용이 많이 드는 경우 트랜스포트 층은 비

용 절감을 위해 같은 네트워크 연결로의 트랜스포트 연결을 통합(multiplexing)

할 수 있다.

모든 경우 트랜스포트 층은 multiplexing을 세션  층에 대해 투명하게 해야 한

다.

트랜스포트 층은 또한 최종적 네트워크 사용자인 세션 층에 어떤 타입의  서비

스를 제공할지를 결정한다. 가장 유명한 형태의  트랜스포트 연결은 보낸 순서

대로 메시지를 전송하는 에러 없는  점대점(point-to-point) 채널이다. 또 다른 

트랜스포트 서비스의 종류로는 전송 순서에 대한 보장 없는 독립된 메시지  전

송과 여러곳으로의 메시지의 방송(broadcasting)이다. 이러한  서비스의 종류는 

연결이 구축될 때 결정된다.

트랜스포트 층은 진정한  end-to-end(source-to-destination)층이다. 다시 말하

면 소스 기계의 프로그램이 메시지 헤더와 제어 메시지를 이용해 목적지의  다

른 비슷한 프로그램과 대화한다. 1-3층은 각 기계와 그  주변 사이의 프로토콜

일 뿐 궁극적인 소스와 목적지 기계에 의한 것은  아니다. chained 형태인 1-3

층과 다른 점은 4-7층이 end-to-end 라는 것이다.

많은 호스트가 다중 프로그래밍  되므로 즉, 여러 개의  연결이 이루어지는 데 

있어 메시지가 어떤 연결에 속하는지 알기 위한 정보도 또한 포함한다.

트랜스포트 층은 여러 메시지를 한 채널로 통합할 뿐 아니라 네트워크사이  연

결의 해제와 설정을 관리해야 한다. 이것을 위해서는 이름 부여 방법이 필요하

다. 또한 정보의 흐름을 조절하는 메커니즘도 있어야 한다.


5. 세션 층(Session layer) 

크게 인증과 검증을 처리한다.

세션 층은 다른 기계의 사용자가 그들 사이의 세션을 설정하도록 한다. 세션은 

트랜스포트 층과 같이 보통의 데이터 전송을 한다. 그러나 어떤 응용에서는 더 

개선된 서비스를 제공한다. 또한 세션은 원격  로그인을 하거나 파일을 전송하

게 한다.

세션 층의 서비스 중 하나가  다이얼로그 컨트롤이다. 즉, 동시에 양  방향으로 

할 것인가 한 방향으로만 전송할 것인가 등을 결정하는 것이다.

관련 세션 서비스가 토큰 매니지먼트이다. 이것은  토큰을 가진 쪽에서 적절한 

행동을 취할 수 있게  한 것이다. 또  다른 세션 서비스가 syncronization이다. 

파일을 전송할 때 중간에 끊기게 되는 경우 이 전에 끝났던 부분에 체크포인트

를 삽입하여 전송을 재개하면 다시 그곳에서부터 시작하게 하는 것이다.


6. 프리젠테이션 층(Presentation layer)

크게 데이터 문제와 압축을 처리한다.

프리젠테이션 층은 전송되는 정보의 문법과 의미에  관계된다. 서비스의 한 예

로는 기계마다 서로 다른 데이터 표현형식의 통일을 위해서 데이터를 표준  형

식으로 encode하는 것이다. 또한 데이터 압축과 암호화 등에도 관련된다.


7. 애플리케이션 층(Application layer)

최종사용자에게 서비스를 제공한다(mail, login 등).

애플리케이션 층은 일반적으로 쓰이는  여러 프로토콜을 포함한다.  예로 서로 

다른 형식의 터미널 타입의 호환을 위해 가상의 네트워크 버츄얼 터미널을  정

의하여 실제 터미널을 이것으로 매핑하는  것이다.  또 다른 기능으로는  파일 

전송이 있다. 서로 다른 파일 이름 지정 방법이나 문자 라인의 표현 방식을 서

로 호환되도록 하는 것이다.

이 외에도 e-mail, remote job entry, directiory lookup 등의 일도 수행한다.

TCP/IP 네트워크 모델

1. 링크 층 

네트워크 하드웨어와 디바이스 드라이버를 책임진다.

TCP/IP는 이서네트와 토큰 링, RS-232 시리얼 라인에서 구현되었다.


2. 네트워크 층

기본 통신, 어드레싱, 라우팅을 책임진다.


(1) IP 데이터그램

모든 IP 데이터그램은 출발지와 도착지 주소를 가진다. 즉, 각 데이터그램이 독

립적인 경로를 가질 수 있다는 말이다.

또한 fragmentation이 책임도 가지며 기본적인 flow control도 제공한다.


(2) 인터넷 어드레스(전체 32비트)

multihomed인 경우 모든 인터넷 주소는 고유한 호스트를  지칭하지만 각 호스

트가 고유한 주소를 가지지는 않는다.


(3) 서브넷 어드레스

어떤 클래스의 인터넷 주소를 가진 기관이 원하는 경우 서브네트워크를 제공하

기 위해 가능한 호스트 주소 공간을 분할 할 수 있다.

예를 들면 class B의 주소를 가지는 경우 호스트 ID에 150개의 호스트를 할당

하고 이것들을 10개의 물리적 네트워크로 구성하기위한 첫 번째 방법으로는 물

리적인 구성을 무시하고 호스트 ID를 1에서 150까지 부여하는 것이다. 이 방법

은 모든 게이트웨이가 각각의 호스트가 어디 있는지 알아야  한다. 이 경우 새

로운 호스트를 추가할 때 각 게이트웨이의 라우팅 테이블의 갱신이 필요하다.

두 번째 방법이 서브넷을 이용하는 것이다. 즉 호스트 ID비트 중 8비트를 서브

넷 ID로 쓰는 것이다. 이 경우 첫 번째 방법과는 달리 게이트웨이 시스템은 서

브넷 ID를 가지고 라우팅에 사용한다. 새로운 호스트의  추가에도 갱신이 불필

요하다.

 

(4) Address Resolution

이서네트의 경우 48비트를 사용하는데 인터페이스 보드 제작 사에서 고유 번호

를 부여한다.

IP층이 인터넷 주소를 이서네트 주소로 변환하는 것을 Address Resolution이라 

하고 디스크 없는  워크스테이션이 부트될  때 인터넷  주소를 결정하는  것을 

Reverse Address Resolution이다.

ARP는 호스트가 특별한 패킷을 broadcast하여 특정 인터넷 주소를 가진  호스

트가 그 이서네트 주소에 응답하도록 할 수 있다. 응답을 받은 requesting 호스

트는 이서네트 주소를 인터넷 주소로 매핑하여 다음 데이터를 전송할 때  같은 

주소를 계속 사용해 패킷을 전송하는 것이다.

RARP는 RARP서버가 32 비트 인터넷 주소와 대응되는 48비트 이서네트 주소

를 각 워크스테이션에 대해 가진다. 워크스테이션이 초기화 될 때 이서네트 주

소를 하드웨어 인터페이스로부터 얻어 이서네트  RARP 패킷(이서네트 주소를 

가지고 인터넷 주소를 질의)을  broadcast한다. 이 때 RARP  서버만이 응답한

다.


3. 트랜스포트 층

네트워크에서 프로그램사이의 통신을 책임진다. TCP/UDP가 있는데 UDP는 IP

와 구별되는 2가지의 특징을 가진다.


> 포트 번호를 가진다.

> optional checksum를 가진다.


위의 2가지는 IP를 직접 사용하지 않고 UDP를 사용하는 충분한 이유가 된다.


4. 애플리케이션 층

최종 사용자 응용 프로그램들로 FTP, TFTP, BOOTP 등이 있다.


TCP/IP의 구성요소

1. 인터넷 프로토콜(IP) 

실제 데이터를 한 기계에서 다른 기계로 보낸다.

모든 TCP, UDP, ICMP, IGMP 데이터가 IP  데이터그램으로 전송된다. 

IP는 unreliable(비신뢰성), connectionless(비연결성) 데이터그램 전송 서비스를 

제공한다.  비신뢰성의 예로는 만약 라우터 버퍼가 다  찬 경우 IP는 데이터그

램을 버리고 ICMP 메시지를 출발지로 되돌려 보낸다. 비연결성이란 각각의 데

이터그램이 다른 데이터그램과 독립적으로 다루어짐을 의미한다. 예를 들면 패

킷 A,B를 보내는 경우 둘은 서로 다른 경로를 경유하여 B,A순으로 도착할  수 

있다는 것이다.


2. 인터넷 제어 메시지 프로토콜(ICMP)

에러 메시지, 라우팅 어시스턴스, echo request를 포함하는 IP에  대한 저 수준

의 지원

ICMP는 IP층의 일부로 여겨지곤 한다. 

ICMP는 에러 메시지와 주의를 요하는 다른 조건들을 가지고 통신한다.  ICMP 

메시지는 보통 IP layer와 TCP나 UDP 같은 높은 계층에서도 작동한다.

어떤 ICMP 메시지는 사용자 프로세스에게 되돌려질 에러를 발생한다.  ICMP 

메시지는 IP 데이터그램에서 전송된다. 즉  IP 데이터그램에 encapsulation됨을 

의미한다.


3. Address Resolution 프로토콜(ARP)

네트워크의 논리적 주소를 물리적인 하드웨어 주소로 변환한다.


4. User Datagram 프로토콜(UDP)와 Transmission Control 프로토콜(TCP)

IP를 통해  하나의 프로그램에서  다른 프로그램으로  데이터를 보내고(TCP), 

UDP는 각 메시지에 대한 검증 없는 전송을 수행한다. UDP와 달리 TCP는 신

뢰성 있는 connection-base 전송을 한다.


호스트의 주소 지정

어떤 한 기계에 부여할 수 있는 주소는 크게 2가지인데  물리적인 주소(이서네

트 등의 주소)와 논리적인 주소(인터넷 주소)이다.


1. 하드웨어에 의한 가장 낮은 수준의 주소관리

   (addressing)


▶ 이서네트의 경우는 6바이트의 주소를 할당한다.

▶ 토큰링은 2, 4, 6바이트의 주소를 가진다.

▶ point-to-point 네트워크(SLIP/PPP)는 주소를 가지지 않는다.

2. 인터넷 어드레싱

IP 어드레싱으로 알려진 것으로써 세계적으로 고유한 값을 가지며 시스템 종속

적인 성질을 가진다. 4바이트 IP 주소는 각 네트워크 장치에 할당된다.


3. IP 주소와 하드웨어 주소와의 매핑

링크 계층에 의해 구현되어 진다.

Broadcasting되는 네트워크에서는 ARP가 자동으로 해준다.   유닉스 시스템에

서는 IP 주소를 텍스트 이름으로 연관시켜 준다(‘/etc/hosts’  파일을 사용하

거나 DNS를 사용한다).

인터넷 주소

인터넷 주소는 4바이트 주소로 네트워크 부분과 호스트 부분으로 나뉜다. 호스

트 부분은 네트워크에서의 시스템(기계)을  지정한다. 네트워크 부분은 주소가 

참조하는 논리적 네트워크를 지정한다. 네트워크 부분에서 라우팅 결정이 이루

어진다. 관례적으로 10진수로 쓰인다. 


인터넷 주소의 분류

전부 5개로 분류한다.


1. A 클래스 

주요 네트워크로서 거의 할당하지 않는다. 형식은 N.H.H.H 이다(N이 네트워크 

부분, H가 호스트 부분).


        1.*.*.* ~ 128.*.*.*값을 가진다.

2. B 클래스

비교적 큰 사이트에 할당한다. 일반적으로 서브넷된다. 실제 얻기 어려운  주소

이다. 형식은 N.N.H.H 이다.

  

        128.1.*.* ~ 191.255.*.*값을 가진다.

3. C 클래스

비교적 얻기 쉬운 주소이다.

형식은 N.N.N.H 이고 192.1.1.*~223.255.255.*값을 가진다.


4. D 클래스

Multicast 주소로 아직 개발중인 클래스이다.

 

        224.*.*.* ~ 239.*.*.* 값을 가진다.

5. E 클래스

실험용으로 쓰이는 주소이다. 240.*.*.* ~ 254.*.*.* 값을 가진다.


참고:0.*.*.*와 127.*.*.* , 255.*.*.* 주소는 일반  IP 주소로는 쓰지 않고 특수 

      목적에 사용한다. 0.*.*.*는 자신의 네트워크를 지칭하며 127.*.*.*는 실제

      가 아닌 가상의 네트워크인 loop back 네트워크를 가리킨다.  255.*.*.*는 

      broadcast 주소로 쓰인다.


Routing

시스템의 라우팅 테이블에 의한 라우팅이 이루어진다. 

netstat 명령어로 라우팅 테이블을 검색할 수 있다.


inhavision.inha.ac.kr> netstat -r -n

Routing tables

Destination  Gateway     Flags     Refs   Use  Interface

Netmasks:

Inet         255.255.255.0      


Route Tree for Protocol Family 2:

default      165.246.10.250   UG       31   1911758  tu0

127.0.0.1    127.0.0.1        UH       1         4   lo0

165.246.10   165.246.10.162   U        8    330973   tu0

 

1. 라우팅 테이블 관리

(1) 정적 관리

route 명령어를 이용하여 주로 부팅할 때 추가해 준다.


(예)  route add net 202.87.240.0 202.87.242.23 1


(2) 데몬에 의한 동적 관리


2. 라우팅 프로토콜

라우팅 프로토콜은 네트워크 사이의 정보  교환을 위해서 라우팅 데몬에  의해 

사용되는 것이다.


각 프로트콜은 크게 2가지로 분류된다.

하나는  IGP(Interior   Gateway Protocol)이고   다른  하나는   EGP(Exterior 

Gateway Protocol)이다.

IGP는 autonomous system(하나의 중앙 제어에 묶인 네트워크 집합)의 라우팅 

정보를 관리한다.  EGP는 autonomous  system들 사이의  라우팅을 관리한다. 

EGP에 등록하기 위해서는 InterNIC의 autonomous system으로써 등록해야 한

다.

등록양식은 internic.net의 ftp나 HOSTMASTER@internic.net에 있다.


3. 라우팅 프로토콜의 종류

  (1) Routing Infomation Protocol(RIP)

  (2) Open Shortest Path First (OSPF)

  (3) Interior Gateway Routing Protocol (IGRP)

  (4) Exterior Gateway Protocol(EGP)

  (5) Border Gateway Protocol(BGP)

  (6) Distance Vector Multicast Routing Protocol(DVMRP)  

  RIP,OSPF,IGRP는 interior 프로토콜이다.

  EGP, BGP는 exterior 프로토콜이다.

  DVMRP 는 IP 멀티캐스팅 구현 실험에 사용된다.


RIP는 옛 XNS 프로토콜로 IP 네트워크에  채택되어 표준 유닉스 routed 데몬

에 의해 사용된다.  cost metric은 hop cou nt로써 패킷이 흐르는 각 기계를 1 

hop으로 계산하다. 이유는 경로가 길어지면 RIP가  도달할 수 없는 것으로 인

식하기 때문이다(16router 이상의 길이에선 RIP를 사용하기 힘들다).

  

OSPF는 최근 많이 쓰이는 새 프로토콜로  크고 복잡한 topology에 잘 동작한

다.

RIP에 비해 여러 장점을 가지는데 하나의 목적지로 여러 경로 관리에 좋은 점, 

고수준 라우팅 정보를 공유하는 부분만으로  네트워크 분할이 가능한 점  등이

다.


IGRP는 대중적이지만 점점 사라지는 추세의 프로토콜이다.

EGP는 ARPANET 게이트웨이에 의해 불려진 오래 된 프로토콜로 cost metric

을 이용하며 특정 네트워크 topology를 가정한다.  최근 BGP로 대치되는 추세

이다.

BGP는 EGP에 autonomous 시스템의 복잡한  토폴로지에 대한 지원을 추가한 

것이다.



.......... 



'IT > Network' 카테고리의 다른 글

텔넷(telnet)의 가장 기본적인 명령어  (0) 2017.03.23
ping(핑)과 tracert (trace route)의 개념  (0) 2017.03.23
네트웍(network) 기초  (0) 2017.03.23
블로그 이미지

swhwang

,

 

[초보용]텔넷(telnet)의 가장 기본적인 명령어에 대해서 설명드립니다.

★★텔넷명령어 ★★

 

 

Unixlogin 과정

 

 

1)login

 

우리는 terminal을 이용하던지 consol을 이용하든 login을 해야만 Unix를 사용할 수 있다. 이것은 UnixMultiuser환경이기 때문에 각각의 사용자들의 정보를 보호 하기 위해서이다.

 

login을 통해 userIDpassword를 입력하면 system/etc/passwd file에서 올 바른 사용자인지 확인하고 필요한 정보(userID, groupId, home directory, path ) 을 얻고 거기서 지시하는 프로그램(shell)을 실행한다.

 

=> 저자의 passwd file의 내용

 

comsin:x:514:500:이승우:/usr1/comsin:/bin/csh

 

(설명)

comsin : login ID

x : 암호화된 패스워드

514 : userID

500 : groupID

이승우 : 사용자(저자)이름

/usr1/comsin : login되는 저자의 home directory

/bin/csh :저자의 실행 shell(C shell)

 

 

자신의 정보를 알고 싶다면(만약 Unix 계정이 있다면) 지금 login해서 %more /etc/passwd

 

 

 

라고 입력하면 됩니다.

 

2)Shell

 

Shell이란 DOScommand.com과 비슷한 역할을 하는 프로그램으로 명령을 입 력받아 이를 해석하고 처리해 주는 역할을 수행합니다.

 

UnixMultichoice 환경으로 사용자가 이를 선택해서 사용할 수 있습니다.

 

많이 사용하는 shell로는 Bourne shellC shell 그리고 korn shell등이 있다.

 

자신의 shell이 무엇인지 알고 싶으신 분은 지금 다음을 입력해 보십시오. %ps -f

 

 

 

만약 제일 마지막에 'sh' 라고 나오면 Bourne shell을 쓰고 있는 것이고 'csh'라고 나오면 C shell을 그리고 'ksh'라면 korn shell을 쓰고 있는 것입니다.

 

여러 shell중 가장 많이 쓰이는 것은 C shell입니다.

 

login을 하여 OSshell 프로그램을 실행시키면 먼저 ".cshrc"(C shell인 경우) file을 읽어 실행합니다. 이는 DOSconfig.sys와 비슷한(여러 가지 초기화 명령 들) 역할을 합니다. 그리고 다음에는 ".login" 이란 file을 읽어 실행하며 이 파일에 는 terminal setup과 관련된 명령들이 들어있습니다.

 

저자의 .cshrc file.login file

 

=> .cshrc

 

alias ls 'ls -aF'

alias ll 'ls -alF | more'

alias prompt 'set prompt = "$cwd>"'

alias apropos 'man -k \!'

alias cd 'chdir \!* ;prompt'

umask 022

set path=( /usr1/comsin/bin /bin /usr/bin /usr/ucb /usr/lib)

set history=50

 

if ( $?prompt ) then

set history=32

endif

alias h history

 

=> .login file

 

stty -istrip

setenv EXINIT 'set ai'

stty erase ^H

prompt

set history=50 savehist=30 filec

mesg y

ll

 

여러분이 확인하고 싶다면 여러분의 home directory에서 다음을 입력하십시오. %ls -al : '.cshrc' '.login' 이 있는지 확인.

%more .cshrc

%more .login

 

 

 

 

만약 두 file이 없다면 앞으로 계속 공부해서 여러분의 환경을 만들어 보세요.



'IT > Network' 카테고리의 다른 글

TCP/IP  (0) 2017.03.23
ping(핑)과 tracert (trace route)의 개념  (0) 2017.03.23
네트웍(network) 기초  (0) 2017.03.23
블로그 이미지

swhwang

,

초보용ping()tracert (trace route)의 개념정립!!!

초보자분들을 위해 ping() tracert (trace route의 약자^^)의 개념을 간단히 설명 드리겠읍니다...

 

 

 

ping은 간략히 말하자면, 컴퓨터의 상태를 알아볼수 있습니다

가장 기본적인 ping ip주소라고 치면 속도, 그리고 기타상태등이

나옵니다.

여러 옵션을 볼수있죠(옵션은 그냥 ping을 치면 됩니다)

그리고 ping을 할 경우에는 상대방에게 icmp 패킷이 보내지기때문에

ping만 해도 상대방이 알아챌수가 잇고요

네트윅상에 어떤걸 해서, ping을 해도 그 ip가 살아있는지

죽어있는지 조차 모르게 할수도 있습니다

 

그리고 tracert는 트레이스 라우트(trace route)

추적 및 자기컴퓨터와 연결된 컴퓨터들이 나옵니다

가장 기본적인 tracert ip주소 치면

op와 네트윅상에 연결된 컴들이 나타납니다

여기서 속도를 체크해볼수도 있고

gui용으로는 neotrace라는 거가 있는데

연결된 경로를 보여줌이로써 추적이 가능하고요

자기컴의 네트윅상에 트래픽이 심하게 걸려있을때

어디서 문제가 있는지 알아볼수 있습니다(상대방꺼두 됨)

이전: 바이러스드로퍼/핫키 훅(Dropper/HotkeysHook) 특히 주의!!!

다음: ★★★특별강의윈도우 파티션분할(fdisk)설정 특강.....2(!) 

'IT > Network' 카테고리의 다른 글

TCP/IP  (0) 2017.03.23
텔넷(telnet)의 가장 기본적인 명령어  (0) 2017.03.23
네트웍(network) 기초  (0) 2017.03.23
블로그 이미지

swhwang

,

초보개념정리네트웍(network) 기초를 튼튼히 확립하자..,

쉽게 말해서 동일한 성격의 집단을 하나로 묶어서 자원과 주변기기를 공유하는것입니다.

 

무지 쉽죠? 사실은 공유한다는것 이게 전부라고 해도 과언은 아닙니다.

 

이것을 위해서 부수적으로 하드웨어적 장비와, 프로토콜, 표준규약, Software등이 필요한것이죠.

 

다른 서적이나 인터넷 웹사이트등에 보면 네트웍의 역사에 대해서 장황하게 늘어 놓은 말들이

 

많더군요. 사실 역사도 중요하긴 하지만, 실무와는 거리가 있으니까 여기선 생략하겠습니다.

 

 

* 네트웍의 구성 요소

 

- Network Operating System

 

- 네트웍과 연결된 주변장치

 

- NIC (Network Interface Card) or Modem

 

- Network Cable

 

 

*Netsowrk Operating System

 

Server : 자원을 공유하며 각 Client 에게 서비스를 목적으로 하는 컴퓨터

 

Client : 서버로부터 제공되는 정보나 자료를 다루는 시스템을 말한다. 일반적으로 서버에

 

접속하는 개인용 컴퓨터

 

*네트웍과 연결된 주변 장치

 

보통 프린터, 라우터등을 말하지요

 

*NIC

 

Ethernet Adapter 로서 보통 lan card 라고 부르지요.

 

*Network Cable

 

동축케이블(10Base2, 10Base5), STP, UTP, 광케이블

 

 

*프로토콜

 

네트웍 통신 소프트웨어를 통한 여러 유형의 이동 데이터 전송시 네트웍 카드 등을 통해 전송이

 

이상 없이 되 수 있도록 만들어진 규약인데, 쉽게 생각 하면, 컴퓨터 끼리 대화 하는 언어라고 할

 

수 있습니다.

 

* IPX/SPX 호환 프로토콜 : 라우팅이 가능, IPXDatagram통신 서비스를 제공하는

 

프로토콜이고 SPXConnectionOriented 통신 서비스를

 

제공하는 프로토콜입니다. 주로 게임할때 많이 쓰이죠 -.-;;

 

* NETBEUI : 라우팅이 불가는 하며, NETBIOS를 기반으로 하기 때문에 속도는 빠르지만,

 

대규모 네트웍에는 적합하지 않죠. NETBIOS라고 하니까 어려운 말 같지만,

 

그냥 컴퓨터 이름이라고 생각하시면 됩니당..

 

* TCP/IP : 라우팅이 가능, 전세계적인 표준 프로토콜이죠. 사실 이 TCP/IP만 가지고도

 

엄청난 양의 설명이 필요하지만, 네트웍전문 강좌가 아니니까... -.-;;

 

 

* 네트웍 표준

 

OSI 7계층 참조 모델

 

Layer 7 : 응용 프로그램 (ftp, telnet, netbios)

 

Layer 6 : 프리젠테이션 (데이터 변환)

 

Layer 5 : 세션 (서버와 접속, 종료, 에러..login)

 

Layer 4 : 전송포트 ( TCP, UDP)

 

Layer 3 : 네트웍 계층 ( IP, IPX)

 

Layer 2 : Data Link 계층

 

Layer 1 : 물리적 계층 (H/W)

 

OSI 7계층 참조 모델은 네트웍을 이루는 구성 요소를 계층별로 나누고 각 계층의 표준을 정한 것

 

으로서 이 표준으로 인해 각 네트웍은 호완성이 생기고 정리가 될 수 있었습니다.

 

 

* 네트웍 방식

 

- 버스 방식 : 하나의 통신 회선을 모든 노드가 공유해서 사용하는 멀티 포인트 방식과 유사한

 

방식이다

 

- 스타 방식 : 중앙 노드로 허브를 사용. 논리적으로는 버스 방식이다.

 

- 링방식 : 각 노드 사이의 연결을 최소화 할 목적으로 쓰인다. 버스방식이나 스타방식과는

 

다르게 순차적 기법을 쓴다.

 

지금까지 네트웍에 대한 기초적이고 간단한 내용에 대해 알아 보았습니다.

'IT > Network' 카테고리의 다른 글

TCP/IP  (0) 2017.03.23
텔넷(telnet)의 가장 기본적인 명령어  (0) 2017.03.23
ping(핑)과 tracert (trace route)의 개념  (0) 2017.03.23
블로그 이미지

swhwang

,