ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20140611 (Network)
    부산IT학원/스마트컨트롤러 2014. 6. 11. 17:30

    78일차







    ---------------

    Network

    ---------------









    IPv4 

    4byte(32비트)체제로 운용된다.

    다시말해 4바이트는 0 ~ 약40억 정도의 가지수를 갖고있다.

    전세계 인구는 현재 

    인구수에비해 주소보급이 모자람

    ip공유기를 이용하기 시작



    IPv6

    IPv6이 시행중에 있음

    곧있으면 상용화 예정

    16byte(128비트)체제로 운용됨

    이것을 시도함으로써 아이피의 고갈을 피할 수 있음





    도메인 - 문자열로된 컴퓨터 이름을 말한다.

    예를들어 google.com 이런걸 우리는 주소라고 하지만 

    엄밀히 하자면 DNS name이다.


    DNS(Domain Name Service)



    실제로 아래 그림과 같이 DOS창에서 아래와 같은 커맨드를 입력해본다

    필자는 www.naver.com 을 입력했다

    그랬더니 아이피 주소가 나오는데 저걸 복사해서

    인터넷 브라우저의 주소차에 갖다 붙혀보면 그에 해당하는 페이지가 뜬다.




    네이버의 실제 주소는 위와 같은 IP주소이다.

    우리가 알고있는 도메인은 진짜주소가 아니며

    우리가 www.naver.com 를 주소창에 입력할 때 마다

    DNS server가 125.209.222.142로 바꾸어 주었기 때문에 우리는 네이버와 같은 페이지에 접속이 가능한 것이다.





    TCP방식

    TCP방식의 기본적인 방식은 다음 그림과 같이

    three hand shake방식으로 한다.


    Apple|iPhone 4S|Normal program|Spot|1/24sec|F/2.4|4.3mm|ISO-50|Flash did not fire, auto mode|2014:06:11 16:13:12

    위의 숫자 1~3까지의 순서를 무조건 거치는 방식이 TCP방식이다

    3번까지의 순서를 마치면 비로소 데이터는 전송되며

    프로세스B가 A에게 데이터를 받을 준비가 되지 않았을때에는

    A는 기다렸다가 나중에 다시보낸다.


    그로므로 이 방식은 속도가 느리지만 정확하다

    그래서 주로 파일을 다룰때 사용된다.




    UDP방식


    UDP방식은 TCP와 달리 데이터의 전송의 흐름제어가 안된다.

    다시말해 프로세스 A가 B에게 데이터를 전송하는 것이 '일방적'이며

    데이터가 혹 누락된다면 데이터를 다시 보낼일은 발생하지 않는다는 말이다.

    그래서 전송속도가 빠른 대신 정확하지 않다

    사운드 등을 주고받을때 사용되는 방식이다.





    socket()


    헤더파일

    #include <sys/types.h> 

    #include <sys/socket.h>


    원형

    int socket(int domain, int type, int protocol);






          1 #include <sys/types.h>
          2 #include <sys/socket.h>
          3
          4 int main(void)
          5 {
          6     int iSock;
          7
          8     // IPv4를 사용하고 TCP방식 사용하는 소켓을 생성
          9     iSock = socket(AF_INET,SOCK_STREAM,0);
         10
         11     if(0 < iSock) // 에러발생시
         12     {
         13         printf("\n소켓을 생성 할 수 없음\n\n");
         14         return -1;
         15     }
         16
         17     printf("\niSock = [%d] 입니다.\n\n",iSock);
         18
         19     close(iSock);   // 소켓을 닫을때 close()사용
         20
         21     return 0;








    - linux

    --- socket.h 위치

    /usr/inlcude/linux/socket.h

    /usr/include/asm/socket.h















    '부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글

    20140613 (TCP/IP)  (0) 2014.06.13
    20140612 (초음파 모듈 Ultra Sonic)  (0) 2014.06.12
    20140610 (TWI로 외부 EEPROM과 통신)  (0) 2014.06.10
    20140609 (TWI)  (0) 2014.06.10
    20140605 (TWI)  (1) 2014.06.05
Designed by Tistory.