디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

소켓프로그래밍에서 프로토콜 등에 관한 개념적인 질문입니다.

소켓(210.123) 2011.12.05 12:46:57
조회 61 추천 0 댓글 1

파일 전송 프로그램을 짜는 과제를 하는중 입니다

궁금한 점에 관해서 일단 제가 이해하고 있는데로 쓸게요

---------------------------------------------
프로토콜 : 통신을 위해 정한 규칙, 약속
(다른 경우에 대해선 모르겠고)
서버와 클라이언트간에 패킷(데이터)을 주고 받을 때, 호스트(단말기 - 사용자가 직접 사용하는 하드웨어 - 컴퓨터 등)의 메모리를 
정해진 크기만큼 보낸다(바이트 단위로 이루어져있다).
10바이트를 보냈다고 치면, 이게 char형 변수 10개 인지 int형 변수2개와 char형 2개인지 받은 입장에서 모르니까 데이터를 어떻게 해석해서 받아들여야하는지를 모른다.
그래서 필요한게 프로토콜. 전달 받은 바이트 크기를 정해진 규칙대로 잘라서 받아들인다. 이 규칙을 프로토콜이라고 한다.

패킷 : 통신을 할 때 주고 받는 것. 데이터가 있는 메모리를 복사하고 거기에 헤더를 더해서 이루어진다. 곧 패킷 = 헤더 + 데이터

헤더 : 데이터에 관한 정보를 저장해 놓은 것. 받은 입장에서 헤더를 보고 데이터를 분석 할 수 있게 하는 역할. 프로토콜로 정해진 규칙대로 만들어진다.

그러니까 통신을 할 때 데이터를 주고 받는데, 받는 입장에서 이 데이터가 어떤 것인지 알 수가 없어서 데이터에 대한 정보를 알려주는 헤더라는걸 붙여야 되고, 이 헤더는 서버와 클라이언트 간에 약속한 규칙대로 이루어져 있으니, 그 규칙에 맞게 분석해서 데이터를 확인한다. 라고 생각합니다.
----------------------------------------------

과제에 대해서 설명하자면

클라이언트는 서버에 요청할 수 있는건 파일 목록 // 파일 전송 이다.
파일 목록을 전송 할 때는 파일 이름과 크기를 알려준다.
파일 전송은 선택한 파일을 보낸다.

이고, 강사님이 하신 말씀은

TCP/IP를 쓴다.
TCP는 너희가 뭘 어떻게 하는게 아니다. 그냥 API 쓰면 된다.
그런데, 서버와 클라이언트 간에 프로토콜이 필요하다.
서버가 보내는게 파일 목록인지, 파일을 잘라서 전송하는 중인지 알아야 하기 때문.
그러니 너희가 프로토콜을 만들어서 해야한다.
FTP서버를 만드는 것이 아니다.
프로토콜은 구조체나 클래스로 만들면 된다.

입니다.

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

질문

1. 위에 제가 이해하고 있는 내용이 맞는지
2. TCP에서 말하는 세번 악수 기법이 bind, listen, accept api를 활용해서 이루어지는 것을 말하는 건지, 그러니까 api 가져다 쓰면 그걸로 된건지,
3. TCP는 전송계층에서 표준화?된 프로토콜이라고 알고있는데, TCP로 통신하는 프로그램이라고 만든다는 것이 api를 쓰는걸로 알아서 되는 것인지, 
4. 코딩할 때 만들라는 사용자 정의 프로토콜은 어느 계층인건지,
5. 파일 전송 과정이 서버가 open -> read -> 소켓에 write -> 클라이언트가 소켓에서 read 하던데, 텍스트파일, 그림파일, 동영상파일 모두 똑같이 적용되는지, 적용된다면 read할 때 버퍼의 자료형을 뭘로 해야하는지,
6. 구조체나 클래스로 만든 프로토콜은 헤더를 말하는게 아닌지, 직접 코딩하는 건 헤더에 대한 내용이고 프로토콜은 나타나진 않지만 패킷을 받고 헤더를 분석하는 과정에서 정한 프로토콜 대로 하면 되는것이 아닌지(헤더 맨 앞 1바이트가 파일 목록 전송인지, 내용 전송인지 나타낸다고 치면 조건문을 통해 1바이트의 내용을 a냐 b냐 비교해서 a이면 이 데이터는 파일 목록에 관한것이다. 라고 클라이언트에서 코딩하면 되는지)

입니다.

-------------------------------------------
책을 읽어봤지만 수업 내용 이상으로 받아들이질 못하겠고, 파일 전송 프로그램 예제를 보면 프로토콜에 관한건 없고 그저 파일입출력 하듯이 read, write 할 뿐이고, 구글링을 해도 프로토콜 이란 단어 때문인지 TCP / UDP에 대해서만 나오고......
글이 많이 길지만 그만큼 이해하고 있는것, 궁금한 것을 확실히 보여드리고 싶었습니다
도와주세요 ㅠㅠ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
292661 HSJ ㅋㅋㅋ 하선정이래 ㅋㅋㅋㅋ ㅅㅂ [2] 쿄스케갤로그로 이동합니다. 11.12.05 116 0
292657 우리나라 개발자만 다 할줄 아는거야? 외국도 그런거야??? [4] 거칠게갤로그로 이동합니다. 11.12.05 202 0
292656 프로그래머로 취업하기 vs 맥도날드 주방장하기 [3] ㅇㅇㅇ(125.130) 11.12.05 122 0
292655 c언어에서 이름으로 오름차순 질문이요 [1] 홍길동(155.230) 11.12.05 44 0
292654 정치인들이 제일 무서워하는 게 뭔지 아냐? [4] 바보플머(121.190) 11.12.05 111 0
292653 개발자 연봉 1200...... 1400 이 꿈의 연봉 맞네~ [2] 거칠게갤로그로 이동합니다. 11.12.05 184 0
292652 아 존나 엽기별 귀엽네 [1] 쿄스케갤로그로 이동합니다. 11.12.05 71 0
292651 나 맨날 일하다가 조는데, 오늘 1분도 안 졸았음.. [1] 므해?갤로그로 이동합니다. 11.12.05 55 0
292649 시발 나리링갤로그로 이동합니다. 11.12.05 23 0
292648 스트라이크 백 이모군(175.114) 11.12.05 31 0
292647 형들 예제 실행하려니까 이런 에러가 뜨는데 피올라갤로그로 이동합니다. 11.12.05 45 0
292646 자꾸 뭐가 빵빵 터질 때는 발기일보를 훑어보면 그 이유를 알 수 있다. [3] 바보플머(121.190) 11.12.05 90 0
292643 그깟 셲쓰가 뭐길래 요란이냐! [1] 금고래갤로그로 이동합니다. 11.12.05 96 0
292641 형들 왜 고스트15로 HDD -> SSD 하면 HDD부팅이 안되는거? [5] dddd(203.244) 11.12.05 132 0
292640 님들 책방프로그램 만들려는데 [4] 금고래갤로그로 이동합니다. 11.12.05 72 0
292639 필터좀 만들어 본 사람 써니덕후갤로그로 이동합니다. 11.12.05 44 0
292636 프로그래머도 여친 사귈때 얼굴 가리냐? [3] 므해?갤로그로 이동합니다. 11.12.05 169 0
292635 잘 몰라서 그러는데 시스템 구조도랑 시스템 설계도랑 무슨 차이에여? 질문점(220.122) 11.12.05 36 0
292634 솔직히 프로그래머들 배가 너무 부른거 아닌가요 [5] 비밀의계곡갤로그로 이동합니다. 11.12.05 203 0
292633 나 필리핀인데 Adelposs갤로그로 이동합니다. 11.12.05 41 0
292632 대림대컴퓨터소프트웨어가어떰?? 이건산전갤로그로 이동합니다. 11.12.05 74 0
292629 씨언어 공부하다 개빡침 와오 [4] 안찡(61.37) 11.12.05 129 0
292628 perl ☞ php asp jsp ☞ xml -ㅂ-(210.90) 11.12.05 39 0
292627 디자이너의 꿈의 연봉은 얼마인가요 비밀의계곡갤로그로 이동합니다. 11.12.05 61 0
292626 헥스에디터로 어떻게세이브파일 열어요? vcxvv(218.238) 11.12.05 30 0
292624 아이폰으로 코딩하는 어플 하나도 없냐? [1] DES AES OTP갤로그로 이동합니다. 11.12.05 121 0
292623 이렇게 인생 하나가 훅 가는구나... [3] 이문동쮸쮸바갤로그로 이동합니다. 11.12.05 167 0
292620 안드로이드 쓰는사람 [3] ㅈㅂㄷㅂㄷ(210.93) 11.12.05 86 0
292619 아놔 어셈블리 뭘 어떻게 공부해야할지 모르것넼ㅋㅋㅋㅋㅋㅋ 나리링갤로그로 이동합니다. 11.12.05 64 0
292618 그 방송인이라는게... xxx 라는데.. [5] 쿄스케갤로그로 이동합니다. 11.12.05 154 0
292617 오빠들 이거 씨언어공부하는데 안풀려 갈켜죵.. [11] 안찡(61.37) 11.12.05 162 0
292615 횽들 닭집 드립이 사실이었어.... [1] ㅈㅂㄷㅂㄷ(210.93) 11.12.05 82 0
292613 횽들 컴터 사양이 어케되남욤 [1] 질문(221.147) 11.12.05 53 0
292612 해커는연봉 2000 은대려나 [2] 복룡갤로그로 이동합니다. 11.12.05 194 0
292611 이거 디코더냐? [1] ㅇㅅㅇ(211.246) 11.12.05 67 0
292608 나가사끼 랑 꼬꼬면 [8] 복룡갤로그로 이동합니다. 11.12.05 92 0
292607 나 면접 갔다 올게 있다가 후기 남길게 [1] 좋은아버지갤로그로 이동합니다. 11.12.05 79 0
292605 윈도용 어플 만들때 MFC 요즘은 안써? [3] ㅇㅇ(218.152) 11.12.05 105 0
292604 이제 면접 보러 갈려고 준비 하고 잇는데 [4] 좋은아버지갤로그로 이동합니다. 11.12.05 95 0
292602 디아블로3 심의 들어갔다. 그것도 정발 버전이! [2] 외계달팽갤로그로 이동합니다. 11.12.05 103 0
292601 열심히만 하면 목표를 이룰 수 있음 [1] 분당살람갤로그로 이동합니다. 11.12.05 101 0
292600 점심시간 끝났네~ 마지막으로 이거 보고 일해야징~(아이유 - 삼촌) 거칠게갤로그로 이동합니다. 11.12.05 42 0
292599 어휴 웹은 그냥 막노동이네 ㅡㅡ 거칠게갤로그로 이동합니다. 11.12.05 66 0
292598 까오~~ 아이유 너무 귀여운거 같어!!! >.< 거칠게갤로그로 이동합니다. 11.12.05 66 0
292597 이제는 필요 없는 기술이 뭐가 있냐?? [3] 거칠게갤로그로 이동합니다. 11.12.05 103 0
292596 이번 크리스마스는... [1] 므해?갤로그로 이동합니다. 11.12.05 40 0
292595 다음주에 첫출근 하는데 말이야. [3] 곧신입(125.129) 11.12.05 94 0
292594 쎾서들아!! 발기찬 점심시간이다!!! [1] 거칠게갤로그로 이동합니다. 11.12.05 47 0
소켓프로그래밍에서 프로토콜 등에 관한 개념적인 질문입니다. [1] 소켓(210.123) 11.12.05 61 0
292590 열혈c.. 교재에 나온 그대~로 했는데 왜 안될까?ㅠㅠ [1] 으응?(118.176) 11.12.05 99 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2