TCP/IP 프로토콜 아키텍처
TCP/IP 프로토콜은 DARPA 모델(TCP/IP를 개발한 미 정보 조직의 이름을 딴)로 알려진 네 계층의 개념적인 모델에 맵핑 되어 있습니다. DARPA 모델의 네 계층은 애플리케이션(Application), 트랜스포트(transport), 인터넷(Internet), 네트워크(Network) 인터페이스입니다. DARPA 모델의 각 계층은 OSI(Open Systems Interconnection) 7계층 모델의 하나, 혹은 하나 이상의 계층과 일치합니다.
그림 1은 TCP/IP 프로토콜 계층 구조를 보여줍니다.
그림 1 TCP/IP 프로토콜 계층 구조.
네트워크 인터페이스 계층
네트워크 인터페이스 계층 (네트워크 억세스 계층으로 불리기도 합니다.)은 TCP/IP 패킷(packet)을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당합니다. TCP/IP는 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계되어 있습니다. 이러한 이유로, TCP/IP는 서로 다른 네트워크 형태를 연결하는데 사용되어 질 수 있습니다. 여러 네트워크 형태로는 이더넷(Ethernet), 토큰링(Token Ring)과 같은 LAN기술과 X.25, 프레임 릴레이(Frame Relay )와 같은 WAN기술을 포함합니다. 특정 네트워크 기술을 개발하는 독립 회사들은 ATM(Asynchronous transfer Mode)과 같은 새로운 기술을 TCP/IP에 적용하고 있습니다.
네트워크 인터페이스 계층은 OSI 모델에서 데이터 링크 계층과 물리적 계층(Physical layer)에 해당합니다. 인터넷 계층은 데이터 링크 계층에 존재할 수 있는 순서화(sequencing), 확인(acknowledgement) 서비스의 이점을 채택하지 않았다는 사실에 주의하기 바랍니다. 네트워크 인터페이스 계층은 신뢰할 수 없는 것으로 가정합니다. 세션 확립과 순서화, 패킷 확인 등의 신뢰할 수 있는 통신은 트랜스포트 계층의 책임입니다.
인터넷 계층
인터넷 계층은 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공합니다. 인터넷 계층의 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등입니다.
- IP(Internet Protocol)은 IP 어드레싱과 패킷의 분해, 재조합을 책임지는 프로토콜입니다.
- ARP(Address Resolution Protocol)은 인터넷 계층 주소를 네트워크 인터페이스 계층의 주소(하드웨어 주소와 같은)로 변환하는 역할을 담당합니다.
- ICMP(Internet Control Message Protocol)은 IP 패킷의 전달에 따른 오류나 상태를 리포트하고 진단하는 기능을 제공합니다.
- IGMP(Internet Group Management Protocol)은 IP 멀티캐스트(multicast) 그룹의 관리를 책임집니다.
인터넷 계층은 OSI 모델의 네트워크 계층에 해당합니다.
트랜스포트 계층
트랜스포트 계층은 (Host-to-Host 트랜스포트 계층이라고도 하는데) 애플리케이션 계층에 세션과 데이터그램(Datagram) 통신 서비스를 제공합니다. 트랜스포트 계층의 핵심 프로토콜은 TCP와 UDP(User Datagram Protocol)입니다.
- TCP는 1대1의 연결 지향, 신뢰할 수 있는 통신 서비스를 제공합니다. TCP는 TCP 연결 확립과 보내진 패킷의 확인, 순서화, 전달 중 손상된 패킷을 복구하는 책임을 집니다.
- UDP는 1대1, 1대다의 비연결 지향, 신뢰할 수 없는 통신 서비스를 제공합니다. UDP는 주로 전달해야 할 데이터의 크기(하나의 패킷으로 보낼 수 있는 데이터와 같은 경우)가 작을 때나, TCP 연결 확립에 의한 부하를 피하려고 할 때, 혹은 상위 프로토콜이 신뢰할 수 있는 전달을 책임지는 경우에 사용됩니다.
트랜스포트 계층은 OSI 모델의 트랜스포트 계층전체와 세션 계층의 일부에 해당합니다.
애플리케이션 계층
애플리케이션 계층은 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공하고 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의합니다. 여러 가지 애플리케이션 계층 프로토콜이 존재하며 지속적으로 새로운 프로토콜이 개발되고 있습니다.
가장 많이 알려진 애플리케이션 계층 프로토콜에는 다음과 같은 것들이 있습니다.
- HTTP(HyperText transfer Protocol)은 WWW의 Web 페이지 파일을 전송하는데 사용됩니다.
- FTP(File transfer Protocol)은 상호 파일 전송을 위해 사용됩니다.
- SMTP(Simple Mail transfer Protocol)은 메일 메시지와 그에 추가된 첨부 파일을 전송하기 위해 사용됩니다.
- Telnet(terminal emulation protocol)은 네트워크 호스트에 원격 접속하기 위해 사용됩니다.
또한, 다음과 같은 애플리케이션 계층 프로토콜이 TCP/IP 네트워크를 사용하거나 관리하는 것을 도와줍니다.
- DNS(Domain Name System) 은 호스트 이름을 IP 주소로 변환하기 위해 사용됩니다.
- RIP(Routing Information Protocol) 은 IP 네트워크상에서 라우팅 정보를 교환하기 위해 라우터가 사용하는 프로토콜입니다.
- SNMP(Simple Network Management Protocol) 은 네트워크 관리 콘솔과 네트워크 장비(라우터, 브리지, 지능형 허브)간에 네트워크 관리 정보를 수집, 교환하기 위해 사용됩니다.
RFID(Radio-Frequency Identification) 기술이란 전파를 이용해 먼 거리에서 정보를 인식하는 기술을 말한다. 여기에는 RFID 태그(이하 태그)와, RFID 판독기(이하 판독기)가 필요하다. 태그는 안테나와 집적 회로로 이루어지는데, 집적 회로 안에 정보를 기록하고 안테나를 통해 판독기에게 정보를 송신한다. 이 정보는 태그가 부착된 대상을 식별하는 데 이용된다. 쉽게 말해, 바코드와 비슷한 기능을 하는 것이다. RFID가 바코드 시스템과 다른 점은 빛을 이용해 판독하는 대신 전파를 이용한다는 것이다. 따라서 바코드 판독기처럼 짧은 거리에서만 작동하지 않고 먼 거리에서도 태그를 읽을 수 있으며, 심지어 사이에 있는 물체를 통과해서 정보를 수신할 수도 있다.
RFID는 사용하는 동력으로 분류할 수 있다. 오직 판독기의 동력만으로 칩의 정보를 읽고 통신하는 RFID를 수동형(Passive) RFID라 한다. 반수동형(Semi-passive) RFID란 태그에 건전지가 내장되어 있어 칩의 정보를 읽는 데는 그 동력을 사용하고, 통신에는 판독기의 동력을 사용하는 것을 말한다. 마지막으로 능동형(Active) RFID는 칩의 정보를 읽고 그 정보를 통신하는 데 모두 태그의 동력을 사용한다.
RFID를 동력 대신 통신에 사용하는 전파의 주파수로 구분하기도 한다. 낮은 주파수를 이용하는 RFID를 LFID(Low-Frequency IDentification)이라 하는데, 120~140 킬로헤르츠(khz)의 전파를 쓴다. HFID(High-Frequency IDentification)는 13.56 메가헤르츠(Mhz)를 사용하며, 그보다 한층 높은 주파수를 이용하는 장비인 UHFID(UltraHigh-Frequency IDentification)는 868 ~ 956 메가헤르츠 대역의 전파를 이용한다.
작동원리
- 칩과 안테나로 구성된 태그에 활용 목적에 맞는 정보를 입력하고 대상에 부착
- 게이트, 계산대, 톨게이트 등에 부착된 리더에서 안테나를 통해 발사된 무선 주파수 태그에 접촉
- 태그는 주파수에 반응하여 입력된 데이터를 안테나로 전송
- 안테나는 전송 받은 데이터를 디지털신호로 변조, CRC체크하여 리더로 전달
- 리더는 데이터를 해독하여 호스트 컴퓨터로 전달
장점
- 반영구적 사용
- 대용량의 메모리 내장 이동 중 인식 가능
- 원거리 인식가능
- 반복 재사용이 가능
- 다수의 Tag/Label 정보를 동시 인식 가능
- 데이터 신뢰도 높음
- 공간 제약이 없이 동작 가능
- 데이터 변환(write) 및 저장이 용이함
단점
- 비싼 가격
- 개인 프라이버시 침해 가능
- 국가별 주파수가 다름
- 전파의 적용범위(1m미만)가 한정
using namespace std;
class smart
{
public:
int inum;
smart()
{
cout<<"생성자 였나요"<<endl;
};
smart(int inum)
{
// smart::inum=inum;
this->inum=inum; //현재 객체를 가리킨다 결과적으론 위에 주석처리 한 거랑 똑같은 상황이 발생한다
cout<<inum<<"생성자 였나요"<<endl;
};
~smart()
{
cout<<"소멸자 였나"<<endl;
}
smart * test()
{
return this;
}
};
int main()
{
// smart obj[5];
smart obj(1);
smart * p=obj.test();
cout<<p->inum<<endl;
return 0;
}
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
20141016업무일지 7번 김재성 (9) | 2014.10.16 |
---|---|
2014년 10월 15일 수업일지 김용우 (7) | 2014.10.15 |
2014.10.14 업무일지 - 김상엽 (9) | 2014.10.14 |
2014.10.13 일일 교육보고 - 김대희 (3) (9) | 2014.10.13 |
[10.08 업무일지] 2번 고한솔 (10) | 2014.10.08 |
영상처리 (0) | 2014.10.08 |
20141008 영상처리 양태영 (0) | 2014.10.08 |
20141008 영상처리 박영주 (0) | 2014.10.08 |